2016-04-14 105 views
2

如何轉換這種單一的字符串:"CO2+H2O"轉換一個字符串爲許多

成兩個不同的字符串:"CO2""H2O"

和交替;建立一個循環,以便每當有一個加號時,它將產生一個單獨的字符串: 例如爲"C+H2O+Q+Z3P+N2""C""H2O""Q""Z3P""N2"

+2

沒有必要爲一個循環。在正則表達式中使用'split'。 –

回答

1

使用String.split

String s = "C+H2O+Q+Z3P+N2"; 
String[] separated = s.split("\\+"); 
+2

你需要轉義'+',也就是's.split(「\\ +」);' –

+0

如果你只是想做一個並把它變成另一個字符串呢? 例如「CO2 + H2O」 分解爲:c =「CO2」 – Alfred

+0

's.split(...)[0]'取第一個元素。或's.substring(0,s.indexOf('+'))'。 (兩者都假定字符串中有一個'+';第一個假設字符串不是全部的'+')。 –

0

你可以使用的StringTokenizer:

String str = "C+H2O+Q+Z3P+N2"; 
StringTokenizer tokenizer= new StringTokenizer(str, "+"); 
List<String> list = new ArrayList<String>(); 
while (tokenizer.hasMoreTokens()) { 
     list.add(tokenizer.nextToken()); 
} 

此處瞭解詳情: StringTokenizer example

+0

如何將一個對象一次轉換爲使用此方法的字符串? – Alfred

+0

你一次指的是什麼?你的意思是說你可以有很多像「C + H2O + Q + Z3P + N2」的字符串?或者你是否希望將來自標記器的新字符串值存儲在其他數據結構中(而不是ArrayList中)?基本上tokenizer.nextToken()返回String值 – pokemzok

2

使用public String[] split(String regex)你可以將所有的子串放在一個數組中。

String[] many = "CO2+H2O".split("\\+"); 

一旦這樣做,你可以循環在陣列上處理每個單獨的串

for(String one : many){ 
    System.out.println(one); 
}