讓我們說,我想在一個「for」循環來創建一個新的字符串,鏈接字符串中的Java
新的字符串將是一個exsist字符串,將改變depanding一個條件和位置的變化循環。
我怎樣才能插入到一個存在的字符串新的字符?
我經歷了與字符串有關的整個方法總結,並沒有得到我的答案。
編輯:原來我張貼錯誤的方法的Java 4鏈接。我使用最新版本的Java。
謝謝
讓我們說,我想在一個「for」循環來創建一個新的字符串,鏈接字符串中的Java
新的字符串將是一個exsist字符串,將改變depanding一個條件和位置的變化循環。
我怎樣才能插入到一個存在的字符串新的字符?
我經歷了與字符串有關的整個方法總結,並沒有得到我的答案。
編輯:原來我張貼錯誤的方法的Java 4鏈接。我使用最新版本的Java。
謝謝
要麼使用StringBuilder
或String.concat(String)
例子:
StringBuilder sb = new StringBuilder();
Iterator<Integer> iterator =
Arrays.asList(1, 2, 3, 4, 5, 6, 7).iterator();
if(iterator.hasNext()){
sb.append(iterator.next());
while(iterator.hasNext()){
sb.append(',').append(iterator.next());
}
}
final String joined = sb.toString();
而關於谷歌搜索的javadoc:谷歌將幾乎總是返回古1.4版本。如果您僅搜索類名稱這樣的關鍵字。搜索classname /6
,例如StringBuilder /6
,您將獲得當前版本。
+1 for stringbuilder in loop – 2011-03-18 13:41:44
原始字符串會在每個循環中更新嗎? – 2011-03-18 13:43:51
StringBuffer已同步,非線程環境的性能開銷。 – 2011-03-18 13:45:32
嘗試StringBuffer
或StringBuilder
。你需要在Java 1.4中編碼嗎?
你也可以試試這個(雖然我強烈建議StringBuilder/StringBuffer
方法):
String s = "somestring";
s = s.substring(0, 4) + " " + s.substring(4); //result: "some string"
你需要找到一個方法substring()
指數以某種方式(使用indexOf
或lastIndexOf
)。
我如何可以插入到存在串 新的字符?
你不行。 Java字符串被設計爲不可變的。您必須使用像StringBuilder
這樣的可變類,或者用新的修改版本替換原始字符串。
那麼......有反射...... * ahem * ;-) – berry120 2011-03-18 13:49:21
@ berry120:當然,如果你不介意去地獄...... – 2011-03-18 13:53:23
@莓甚至反射不會讓你追加數據到字符串,因爲價值領域是最終的。但你可以改變現有的字符 – 2011-03-18 13:55:45
使用StringBuffer
性能方面的原因:
// new StringBuffer
StringBuffer buf = new StringBuffer("bla blub bla");
// insert string
buf.insert(9, " huhu ");
// append strings
buf.append(" at the end");
// Buffer to string
String result = buf.toString();
不,使用Java 1.5或更高版本,請使用['StringBuilder'](http://download.oracle.com/javase/6/docs/api /java/lang/StringBuilder.html)。除了幾個角落案例之外,它的速度更快 – 2011-03-18 13:52:43
使用'StringBuilder'獲得更好的性能(請參閱上文):) – Thomas 2011-03-18 13:54:43
我把'StringBuffer'記錄在案,因爲他發佈了一個鏈接到1.4 java docs – felixsigl 2011-03-21 08:32:30
您正在尋找這樣用java 4的一種方式?或者你錯誤地鏈接了錯誤的javadoc? – 2011-03-18 13:42:00
錯誤,這就是谷歌給我的,現在我看到它是舊版本。謝謝你提到。 – 2011-03-18 13:45:08
@Leo,我認爲1.4.2之後的版本是5.0;)對於這個問題沒有「Java 4」或「Java 5」,有一個「Java 6」;) – 2011-03-18 14:11:54