这样?
public class string_int_tokens
{
public static void main (String[] args)
{
String str = "1 2 3 4 20";
String[] strArray = str.split("\\s{1,}");
int[] intArray = new int[strArray.length];
for (int i = 0; i < strArray.length; ++i) {
intArray[i] = Integer.parseInt(strArray[i]);
}
for (int k = 0; k < intArray.length; ++k) {
System.out.println(intArray[k]);
}
}
}
运行:
1
2
3
4
20
追问是这样,可是有个小问题,就是如果输入是“ 1 2 3 4”,前面有空格就会报错。除了先trim()一下这种解决方法以外,能不能直接改进下正则表达式实现?
追答① 先trim再split是最简单的方法。前有空格,修改正则也没用,因为这不是匹配。
② 修改成正则匹配,不如StringTokenizer来的简单,修改如下:
import java.util.*;
public class string_int_tokens
{
public static void main (String[] args)
{
String str = " 1 2 3 4 20";
StringTokenizer tokens = new StringTokenizer(str, " ");
int[] intArray = new int[tokens.countTokens()];
int index = 0;
while(tokens.hasMoreTokens()){
intArray[index] = Integer.parseInt(tokens.nextToken());
++index;
}
for (int i = 0; i < intArray.length; ++i) {
System.out.println(intArray[i]);
}
}
}
追问thanks!
追答You are welcome~