2013-07-03 77 views
0

取代Java字符串我有一個字符串在Java中:使用字符串生成器

String str = "150,def,ghi,jkl"; 

我想子串,直到第一個逗號,做一些關於它的操作,然後通過修改後的字符串替換它。

我的代碼:

StringBuilder sBuilder = new StringBuilder(str); 

String[] temp = str.split(","); 
String newVal = Integer.parseInt(temp[0])*10+""; 

int i=0; 
for(i=0; i<str.length(); i++){ 
    if(str.charAt(i)==',') break; 
} 

sBuilder.replace(0, i, newVal); 

什麼是做到這一點,因爲我對大數據工作的這段代碼將被調用數百萬次,我想知道是否有避免for循環的可能性的最佳途徑。

+1

for循環有什麼問題? –

+0

我不知道,但調用循環這麼多時間可能會影響時間表現,所以我想如果有一些字符串方法來實現這一點。 – bigData

+0

'str.indexOf(',')'? – johnchen902

回答

3

您也可以使用字符串對象本身的方法replace()

String str = "150,def,ghi,jkl"; 
String[] temp = str.split(","); 
String newVal = Integer.parseInt(temp[0])*10+""; 

String newstr = newVal + str.substring(str.indexOf(","),str.length()); 
+0

也不是每次創建和使用正則表達式模式的split(「,」)',我們可以簡單地使用'str.substring(0,str.indexOf(「, 「))'獲取字符串的第一部分。順便說一句,要獲得第二部分,我們可以簡單地使用'str.substring(str.indexOf(「,」))'。 – Pshemo

0

這應該至少避免過多的字符串連接和正則表達式。

String prefix = sBuilder.substring(0, sBuilder.indexOf(",")); 
String newVal = ...; 
sBuilder.replace(0, newVal.length(), newVal); 
0

現在不要,如果這是對你有用,但我們經常使用:

org.springframework.util.StringUtils 

在StringUtils類,你有很多的對逗號有用的方法分隔的文件。

1
String str = "150,def,ghi,jkl"; 
    String newVal = Integer.parseInt(str.substring(0,str.indexOf(",")))*10+""; 
+0

是的..這個效率更高 – Anirudha