我必须输入一个带有数字的字符串,例如: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);
}
}
}
最佳答案
对于输入 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]);
}
为了将来引用,当您遇到错误时,我强烈建议您将其与代码一起发布。您可能没有现成的 jdk 来编译代码来调试它! :)
关于java - 拆分字符串并将其放在 int 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348591/