[它不是要将String
转换为Integer
]
我需要从控制台命令行的String
中取一些数字。
例如:
String str = "234 432 22 66 8 44 7 4 3 333";
如何获取每个Integer
值并将它们放入数组中?
数字的顺序并不重要,因为String
可能是:
String str = "34 434343 222";
或
String str = " 1 2 3 4 5 6 7";
另外,如何在这两种情况下获得数字(带有一个或多个空白字符):
String str = "2 2 44 566";
和
String str = "2121 23 44 55 6 58";
答案 0 :(得分:6)
如果你想捕捉你用空格分隔的数字,那么你可以这样做:
String str = "234 432 22 66 8 44 7 4 3 333";
String[] strArr = str.split("\\s+");
// strArr => ["234", "432", "22", "66", "8", "44", "7", "4", "3", "333"]
更新:在他的评论中指向 Evan LaHurd ,然后您可以处理数组值,如果您想将字符串转换为整数,则可以使用方法:
int n = Integer.parseInt("1234");
// or
Integer x = Integer.valueOf("1234");
<强> IDEOne Example 强>
答案 1 :(得分:0)
你可以这样做。
String str = "234 432 22 66 8 44 7 4 3 333";
String[] stringArray = str.trim().split("\\s+");//remove any leading, trailing white spaces and split the string from rest of the white spaces
int[] intArray = new int[stringArray.length];//create a new int array to store the int values
for (int i = 0; i < stringArray.length; i++) {
intArray[i] = Integer.parseInt(stringArray[i]);//parse the integer value and store it in the int array
}
答案 2 :(得分:0)
在空格上使用split
并将子字符串解析为整数:
String str = " 2121 23 44 55 6 58 ";
// To list
List<Integer> numberList = new ArrayList<Integer>();
for (String numberText : str.trim().split("\\s+"))
numberList.add(Integer.valueOf(numberText));
// To array
String[] numberTexts = str.trim().split("\\s+");
int[] numberArray = new int[numberTexts.length];
for (int i = 0; i < numberTexts.length; i++)
numberArray[i] = Integer.parseInt(numberTexts[i]);
// Show result
System.out.println(numberList); // [2121, 23, 44, 55, 6, 58]
System.out.println(Arrays.toString(numberArray)); // [2121, 23, 44, 55, 6, 58]
答案 3 :(得分:0)
如果您只想将字符串的数字放在数组中,您还可以使用&#34; nextInt()&#34; Scanner类的方法。
String str = "2 56 73 4 9 10";
Scanner scanner = new Scanner(str);
List<Integer> integers = new ArrayList<Integer>(0);
While( scanner.hasNext() ) // checks if theres another number to add
integers.add( scanner.nextInt() );
你也可以使用&#34; hasNextInt()&#34;来避免使用非数字字符:
while( scanner.hasNext(){
if( scanner.hasNextInt() )
integers.add( scanner.nextInt() );
}
请记住,如果您希望它成为一个数组,您仍然需要转换列表或以不同的方式将数字放在一起。