2016-04-14 126 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); 
}