简体   繁体   English

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

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

i want to make the number array from the StringTokenizer. 我想从StringTokenizer使数字数组。

if there is text line " 2345 " 如果有文本行“ 2345”
i want to get array list [2,3,4,5] . 我想获取数组列表[2,3,4,5]。 so first of all, i made Arraylist and get from the st token using the hasMoreToken 所以首先,我制作了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()];

now i notice my argument_list get whole string to number "2345" not "2","3","4","5" because there is no "split word" like " , " 现在我注意到我的arguments_list的整个字符串都变成了数字“ 2345”,而不是“ 2”,“ 3”,“ 4”,“ 5”,因为没有像“”这样的“分词”

maybe i can divide number use the "/" but i think there is a way just split the String and get the number array even i don't know 也许我可以使用“ /”将数字相除,但是我认为有一种方法可以拆分字符串并获取数字数组,即使我不知道

is there way to split the token to array ? 有没有办法将令牌拆分为数组?

Another approach is to use String#toCharArray , and work with resulting char[] 另一种方法是使用String#toCharArray ,并使用生成的char[]

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

You could also convert to char array in loop declaration, removing the need for chars variable 您也可以在循环声明中转换为char数组,从而无需使用chars变量

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

you can try something like this: 您可以尝试这样的事情:

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

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

Try Following: 尝试以下操作:

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

The code splits the string into each character and later parses it to integer. 该代码将字符串拆分为每个字符,然后将其解析为整数。

Try something like: 尝试类似:

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

Try this : 尝试这个 :

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