我怎样才能从字符串中获取int数组

时间:2014-12-27 08:56:44

标签: java arrays string numbers

我想从StringTokenizer中创建数字数组。

如果有文字行   “2345”
我想获得数组列表[2,3,4,5]。首先, 我做了Arraylist并使用hasMoreToken

从st令牌中获取
ArrayList argument_list = new ArrayList();
 while(st.hasMoreTokens()){
    argument_list.add(Integer.valueOf(st.nextToken()));
}
int[] arguments = new int[argument_list.size()];

现在我注意到我的argument_list将整个字符串变为数字“2345”而不是“2”,“3”,“4”,“5” 因为没有像“,”这样的“分词”,

也许我可以使用“/”分数 但我认为有一种方法只是拆分字符串并得到数字数组,即使我不知道

有没有办法将令牌拆分为数组?

5 个答案:

答案 0 :(得分:1)

另一种方法是使用String#toCharArray,并使用生成的char[]

List<Integer> ints = new ArrayList<Integer>();
char[] chars = "2345".toCharArray();
for (char c : chars) {
    ints.add(Integer.parseInt(String.valueOf(c)));
}

您还可以在循环声明中转换为char数组,从而无需chars变量

List<Integer> ints = new ArrayList<Integer>();
for (char c : "2345".toCharArray()) {
    ints.add(Integer.parseInt(String.valueOf(c)));
}

答案 1 :(得分:0)

你可以尝试这样的事情:

String s = "1234";
int[] intArray = new int[s.length()];

for (int i = 0; i < s.length(); i++) {
    intArray[i] = parseInt(s.charAt(i));
}

答案 2 :(得分:0)

尝试以下:

    String s="12345";
    String test[]=s.split("(?<!^)");

    int[] arguments = new int[test.length];
    for(int i=0;i<test.length;i++){
        arguments[i]=Integer.parseInt(test[i]);
    }

代码将字符串拆分为每个字符,然后将其解析为整数。

答案 3 :(得分:0)

尝试类似:

String s = "1234";
int[] intArray = new int[s.length()];

for (int i = 0; i < s.length(); i++) {
   intArray[i] = s.charAt(i) - '0';
}
System.out.println(Arrays.toString(intArray));

答案 4 :(得分:0)

试试这个:

public static void main(String args[]){
String sTest = "1234";
int n = sTest.length();
List<Integer> list = new ArrayList<Integer>();
for(int i = 0 ; i < n ; i++){

    int code = Integer.parseInt(sTest.substring(i, i+1));
    list.add(code);
    System.out.println(code);
}
System.out.println(list);
}