2013-04-04 35 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