我想从StringTokenizer中创建数字数组。
如果有文字行
“2345”
我想获得数组列表[2,3,4,5]。首先,
我做了Arraylist并使用hasMoreToken
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” 因为没有像“,”这样的“分词”,
也许我可以使用“/”分数 但我认为有一种方法只是拆分字符串并得到数字数组,即使我不知道
有没有办法将令牌拆分为数组?
答案 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);
}