java - 分割字符串时为空

标签 java arrays string file split

我需要为数组创建自己的排序方法,然后开始将文本文件拆分为填充单词的数组。文件格式为:一个整数n,后跟n个字。

这里是一个例子:4 hello hello world hello

但是,我的数组打印:[null4, hello, hello, world, hello]

为什么!我不明白为什么前面有一个null。而且,如果我删除数字 4(目前在我的程序中不起作用),我会得到: [nullhello, hello, world, hello]

你能帮我删除这个空值吗?预先感谢!

public static void main(String[] args) throws FileNotFoundException {
    filePath = "***TEXT FILE HERE***";

    fileInput = new Scanner(new File(filePath));
    convertFile(fileInput);
}

public static void convertFile(Scanner file) {

    String line;

    while (fileInput.hasNextLine()) {
        line = fileInput.nextLine();
        fileData = fileData + line;
    }

    String[] array = createArray(fileData);
    System.out.println(Arrays.toString(array));
}

public static String[] createArray(String data) {
    String[] dataArray = data.split("\\s+");

    return dataArray;
}

最佳答案

您在使用 fileData 变量之前没有对其进行初始化。

尝试

fileData = "";

关于java - 分割字符串时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27211420/

相关文章:

java - 如何检查数组中是否找到用户输入?

string - 如何从 std::borrow::Cow<str> 获取 &str 或 String?

java - 在 Logback 中创建自定义布局

java - 在 MacOS 上安装 clojure

java - 获取二维数组中的特定用户输入

c - 输入后 Char 指针(字符串)数组崩溃?

python - 替换字符串中的多个字符

java - 如何创建自定义比较器来对编号系统进行排序

java - 尝试将 Bukkit ItemStack 字段存储到文件中,但 ItemStack 不可序列化

c++ - ELI5 : What is the data type of `int *p[]`