2015-03-02 99 views
-5

我需要把存储在字符串中的所有数值到数组:如何从字符串中提取数字到一个数组

String str = "12,1,222,55"; 

如果我这样做,那么它会合并所有的数字:

str = str.replaceAll("\\D+",""); 

如何得到这样的事情?:

int[] result = new int[]{12,1,122,55}; 
+5

眼望Java文档 – thermite 2015-03-02 16:30:51

+1

string.split和的Integer.parseInt只要不合并。只需将','和隐含元素拆分为int并存储一个数组。 – 2015-03-02 16:31:16

回答

3

首先拆分字符串。然后在字符串数组的每个元素解析到新阵列

String[] s=str.split("\\D+"); 
int[] intarray=new int[s.length]; 
for(int i=0;i<s.length;i++){ 
    intarray[i]=Integer.parseInt(s[i]); 
} 
1
String[] numbers = str.split(","); 

并添加数字int[]Integer.parseInt(numbers[i]);

如果您不知道输入字符串的确切大小,我建议使用ArrayList为此目的。如果你知道会有4个值,然后去一个数组。

2

只需根据一个或多个非数字字符拆分输入,然后将每个元素的数据类型转换为整数。

String[] parts = str.split("\\D+");