2013-04-04 2 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"); 

Но дефис имеет особое значение для форматере , как я могу избежать этого?

Пытался избежать дефис с "\", но затмение справедливо сообщил мне:

Invalid последовательность эвакуации (годные являются \ Ь \ т \ п \ е \ г \»\» \)

Приветствия

+0

Что на самом деле получает распечатанный? –

+0

«Это не сработало» совершенно бесполезно. При публикации проблемы отправьте точное сообщение об ошибке или фактический результат, который вы видели. – dimo414

ответ

2

проблема не является с дефисом, так же, как с templateFormat:

у вас есть ... String templateFormat = "code:%1$-%2$s-100";

Где вам нужно ... String templateFormat = "code:%1$s-%2$s-100";

Обратите внимание на отсутствие s в %1$ части

+1

Чтобы ответить на другую часть вашего вопроса - дефис имеет особое значение в формате, когда слева от числа (left-justify); в противном случае он НЕ имеет особого значения и не будет мешать выходу. Обязательно принимайте и, возможно, повышайте этот (и любой) ответ, который решает вашу проблему. – arcy

+0

Большое спасибо. Недостатком «s» была проблема - как вы уже указали, дефис НЕ требуется экранирование в моем примере. – Neil

Смежные вопросы