【发布时间】:2014-08-12 03:09:33
【问题描述】:
当我将一个字符串输入拆分为一个数组时,该数组只有 1 个元素。这是为什么?从昨天开始就一直在这,我还没有找到解决方案。我用它来帮助我一点Splitting String and put it on int array
class ISBNcheck2 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter input: "); //ask for input
String input = keyboard.nextLine(); // read input
int length = input.length();
String[] strArray = input.split(" "); //<---- THIS IS A PROBLEM, MY GUESS.
// SOMEHOW strARRAY and intARRAY ONLY HAVE 1 ELEMENT STORED.?????
int[] intArray = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
intArray[i] = Integer.parseInt(strArray[i]);
}
for (int i = 0; i < intArray.length; i++) {
System.out.println(intArray.length); // just a check
System.out.println(intArray[i]); // just a check
}
//System.out.println();
if (isIntegerclass.isValidISBN(input) && length == 10) {
System.out.println("True: ");
// I WANT TO BE ABLE TO ACCESS THE ELEMENTS LIKE THIS. BUT IT HAS ONLY 1 ELEMENT FOR SOME STRANGE REASON.
System.out.println(" " + intArray[0] + " - " + intArray[1] + " " + intArray[2] + " " + intArray[3] + " - " + intArray[4] + " " + intArray[5] + " " + intArray[6] + " " + intArray[7] + " " + intArray[8] + " - " + intArray[9]); //print
} else {
System.out.println("This is not the right input...");
System.out.println("The number must be 10 letters(numbers only) long. No need for dashes in between.");
System.out.println("[] - [][][] - [][][][][] - []");
}
}
}
【问题讨论】:
-
这只是主要的,我有另一个类来检查输入是否只有整数。但是那个类有效。以防万一您想知道 if 语句中对它的引用。
-
你在扫描仪输入中传递了什么?
-
包含 10 个数字的字符串。像这样:1234567899
-
您需要 1) 仅发布程序的相关部分 2) 发布程序无法正常工作的输入 3) 发布您不理解的确切输出/错误。
-
比你的字符串没有任何空间,你怎么能期望更多的元素! :)