繁体   English   中英

我如何从字符串获取整数数组

[英]how can i get int array from the string

我想从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()];

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

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

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

另一种方法是使用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)));
}

您可以尝试这样的事情:

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

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

尝试以下操作:

    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]);
    }

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

尝试类似:

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));

尝试这个 :

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM