简单的string占位符替换

以前发过一个帖子说:

实现java提示信息模板功能

其实这个主要是看了struts的实现才知道的(虽然最后的代码就几行)。

 

今天同事又问起类似的字符换占位符替换的功能,我就找了这个帖子,目的是达到了。不过后来想了下,貌似String自己就有这个功能的,所以在这里总结下2种实现方式:

 String stringFormat  = "lexical error at position %s, encountered %s, expected %s ";

String messageFormat ="lexical error at position {0}, encountered {1}, expected {2}";

System.out.println(String.format(stringFormat, 123, 100, 456));

System.out.println(MessageFormat.format(messageFormat, new Date(), 100, 456));

   2种方式 主要是占位符不一样,好看下结果是

lexical error at position 123, encountered 100, expected 456 

lexical error at position 10-10-12 下午9:35, encountered 100, expected 456

 

   看了下MessageFormat的api说明,这个占位符参数功能更加强大点,支持type,style等限定。所以如果需要使用高级功能建议是使用MessageFormat。

 

你可能感兴趣的:(struts)