java - 当我将字符串输入拆分为数组时,该数组只有 1 个元素。这是为什么?

标签 java arrays input split

当我将字符串输入拆分为数组时,该数组只有 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("[] - [][][] - [][][][][] - []");
        }
    }
}

最佳答案

我认为这会按照您想要的方式分割输入。吐在“”上会将每个数字视为一个单独的字符串。但是,这会在第一个数字之前生成额外的空字符串。 copyOfRange 会删除多余的内容。

import java.util.Arrays;

public class Test {
  public static final void main(String[] args) throws InterruptedException {
    String[] raw = "01234".split("");
    String[] strArray = Arrays.copyOfRange(raw, 1, raw.length);
    System.out.println(Arrays.toString(strArray));
  }
}

打印:

[0, 1, 2, 3, 4]

关于java - 当我将字符串输入拆分为数组时,该数组只有 1 个元素。这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342856/

相关文章:

java - 返回具有最高值的 XML 元素

java - 如何在 Struts2 web 应用程序中为多个登录配置 web.xml?

javascript - 使用 jQuery 的输入字段文本换行

Java 输入问题 - 如何比较字符串

c - C 中 [number,number] 形式输入的错误输入条件

java - 将 JobIntentService 绑定(bind)到 Activity

java - Xalan 的 TransformerFactoryImpl 是线程安全的吗?

python - 升级 numpy 数组并均匀分布值

java - 数组和具体化类型

php - 获取 mysql 行,除非它是重复的,在这种情况下忽略它