2013-04-04 34 views
0

编写我的第一个真正的Java代码,我正在努力弄清楚这一点。Java - 带连字符的String.format

我需要生成一套格式的字符串:

code:100-100-100 

我使用的String.format尝试和产生它:

String templateFormat = "code:%1$-%2$s-100"; 
String code = String.format(templateFormat, "100", "100", "100"); 

但连字符有特殊含义格式,我怎么能逃脱它?

试着用 “\” 来逃避连字符但是Eclipse正确地告诉我:

无效的转义序列(有效问卷是\ B \牛逼\ n \˚F\ r \” \” \)

干杯

+0

实际上被打印出来,什么失踪s? “没有工作”的 – 2013-04-04 17:45:15

+0

完全没有帮助。发布问题时,请发布确切的错误消息或您看到的实际输出。 – dimo414 2013-04-04 17:53:15

回答

2

的问题与您的连字符这么多,因为你templateFormat:

你... String templateFormat = "code:%1$-%2$s-100";

在您需要... String templateFormat = "code:%1$s-%2$s-100";

请注意,在%1$部分

+1

要回答您问题的另一部分 - 连字符在数字左侧(左对齐)的格式中有特殊含义;否则它没有特别的意义,也不会干扰输出。一定要接受,也许upvote这个(和任何)解决您的问题的答案。 – arcy 2013-04-04 18:04:33

+0

非常感谢。缺失的“是”问题 - 正如你指出的那样,在我的例子中连字符不需要转义。 – Neil 2013-04-05 07:22:32