String.fomat通用方法如何编写?
澳门新葡京官网
澳门新葡京官网
当前位置 : 澳门新葡京官网 > 新葡京娱乐场

String.fomat通用方法如何编写?

是这样的。

我用字符串定义异常信息,通常会包含多个 %s 。

然后我 用 String.format 来处理%s的意义

首先谢谢楼下的评论,抱歉各位,我讲的不是太清楚,我再仔细讲一下,我知道format是 变参。以下用实际例子来说明问题:

(1)我想编写一个通用方法,可接收多个参数,str是要匹配的字符串,args是参数列表

(2)我使用这个方法
getReturnMsg"%s already existing, %s taken","name1", "name2"
把参数传递进去!

(3)结果出错了

Format specifier %s

问题:原因应该是在fomat的时候只匹配了"name1",后面%s没匹配到就结束了,所以抛出错误,所以我应该怎样改写我的通用方法来适应多个参数呢???

1

String.format方法本身就支持多个不同的参数,使用多个占位符即可,没明白题主想表达什么

zjupure · 2016年12月20日

展开评论

你这个用不定参数类型可以解决,看一下String类的源码就知道了:

String formatString format, Object... args

format 格式化字符串是预定义的,那也就是说在定义时就已经确定了参数的限制。所以使用时必须传递相对应的参数这是java.util.Formatter实现。

如果你想实现,即使参数不存在也能够正确输出或者默认输出,那你可以使用template模板技术或者placeholder占位符。
freemarker
velocity

org.apache.commons.lang3.text.StrSubstitutor

 Map valuesMap = HashMap;
 valuesMap.put"animal", "quick brown fox";
 valuesMap.put"target", "lazy dog";
 String templateString = "The ${animal} jumped over the ${target}.";
 StrSubstitutor sub = new StrSubstitutorvaluesMap;
 String resolvedString = sub.replacetemplateString;
public static String formatString format, Object... args

String.format的方法签名,第二个本身就是变参啊,可以传一个、多个或者0个。

栏目列表

广告位

澳门新葡京官网