在Java程序中,我使用一个从服务器获取的带有
此时,我不关心占位符的类型(
有什么最简单的方法可以实现这一点吗?一种方法可能是使用正则表达式,但我在思考是否有更方便的方法 - 例如内置函数。
以下是一些示例:
Formatter.format()
函数的字符串。我无法确定要格式化的String
是否具有占位符或有效数量的占位符。如果String
不符合预期,我想抛出异常 - 或以某种方式记录下来。此时,我不关心占位符的类型(
String
,Integer
等),我只想获得每个字符串所需参数的数量。有什么最简单的方法可以实现这一点吗?一种方法可能是使用正则表达式,但我在思考是否有更方便的方法 - 例如内置函数。
以下是一些示例:
Example String | number of placeholders:
%d of %d | 2
This is my %s | 1
A simple content. | 0
This is 100% | 0
Hi! My name is %s and I have %d dogs and a %d cats. | 3
编辑: 如果提供的参数不足,Formatter.format()会抛出异常。有可能我得到一个没有占位符的字符串。在这种情况下,即使我提供了参数(将被省略),也不会抛出异常(尽管我想抛出异常),只会返回该字符串值。我需要向服务器报告错误。
String.format()
的实现。 - Arnaud Denoyelle