use*_*331 26 java arrays string int
我必须输入一个带有数字ex:1,2,3,4,5的字符串.这是输入的一个示例,然后我必须将它放在一个INT数组中,这样我就可以对它进行排序,但它的工作方式不同.
package array;
import java.util.Scanner;
public class Array {
public static void main(String[] args) {
String input;
int length, count, size;
Scanner keyboard = new Scanner(System.in);
input = keyboard.next();
length = input.length();
size = length / 2;
int intarray[] = new int[size];
String strarray[] = new String[size];
strarray = input.split(",");
for (count = 0; count < intarray.length ; count++) {
intarray[count] = Integer.parseInt(strarray[count]);
}
for (int s : intarray) {
System.out.println(s);
}
}
}
Run Code Online (Sandbox Code Playgroud)
cor*_*iKa 52
对于输入1,2,3,4,5,输入的长度为9,9/2 = 4在整数数学中,因此您只存储前四个变量,而不是全部5个.
即使你修正了它,如果你传入了输入,它也会破坏 10,11,12,13
如果您用于1,2,3,4,50输入,它会工作(偶然),奇怪的是:-)
做这样的事情你会好得多
String[] strArray = input.split(",");
int[] intArray = new int[strArray.length];
for(int i = 0; i < strArray.length; i++) {
intArray[i] = Integer.parseInt(strArray[i]);
}
Run Code Online (Sandbox Code Playgroud)
为了将来参考,当您收到错误时,我强烈建议您使用代码发布它.您可能没有人可以随时使用jdk编译代码来调试它!:)
And*_*own 20
Java 8提供了基于流的手动迭代替代方法:
int[] intArray = Arrays.stream(input.split(","))
.mapToInt(Integer::parseInt)
.toArray();
Run Code Online (Sandbox Code Playgroud)
NumberFormatException如果输入可能包含无法转换为整数的字符序列,请准备好捕获.