2011-11-01 89 views
0

我該如何在字符串的末尾添加一些東西,比如整數?字符串的後綴

例子:

int i = 0; 
String string = Integer.toString(i); 
string = string + suffix; 

我試圖用加號添加後綴,但沒有奏效。任何幫助?

+1

'suffix'的值是多少?代碼執行時的輸出是什麼?你期望什麼?請幫助我們來幫助你。 –

+0

你寫的會很好用!問題必須是別的 - 如果你想解決問題,你需要發佈一個SSCCE,或者至少提供一些關於你如何使用結果字符串的細節。 – vaughandroid

回答

3

你給將工作精絕代碼:

String suffix = "suffix"; 
int i = 0; 
String string = Integer.toString(i); 
string = string + suffix; 
System.out.println(string); // 0suffix 

我的猜測是,在你的真正代碼,你是不是分配結果返回給變量。請注意,+運營商不會修改現有的字符串 - 它會創建新的字符串。所以:

String text = "text"; 
String copy = text; 
text = text + "suffix"; 
System.out.println(copy); // Still just "text"; refers to original string 
+0

如果它被寫成像string +「suffix」那麼該怎麼辦?那樣有用嗎? – rulla101

+0

我明白了。謝謝你的幫助。 – rulla101

+0

@ rulla101:是的,這可以正常工作。字符串文字仍然是一個字符串引用... –

0

您可以使用concat字符串類的成員函數。

string = string.concat(Integer.toString(i)); 
+0

不,你不知道。使用'+'可以很好地工作,並且通常更具可讀性。 –

+0

@JonSkeet - 多麼驚喜?經過超過10個月的SO後,得到了你的評論:)我改變了上下文 - 「你可以使用...」 – Mahesh

1

最習慣的方法在現代的Java做,這是String.format("%s%d", s, i);其中sStringiint

+0

這是真的,更好的方法! –

+0

部分取決於您是否想要區分語言環境的輸出。這將使用區域設置敏感的格式化程序; 'text + integer'不會。 –

0

+運算符,如果第一個參數是字符串,則會自動將其他參數轉換爲字符串。

例如在下面的代碼中: -

String myString = "fred"; 
int suffix = 0; 
myString = myString + suffix; 

myString將是「fred0」;

相關問題