拆分字符串时为空

时间:2014-11-30 08:28:25

标签: java arrays string file split

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

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

然而,我的数组打印:[null4,hello,hello,world,hello]

WHY!我不明白为什么之前有一个null。并且,如果我删除了数字4(此时我的程序中没有任何作用),我得到:[nullhello,hello,world,hello]

你能帮我删除这个null吗?提前谢谢!

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;
}

2 个答案:

答案 0 :(得分:1)

在使用之前,您没有初始化fileData变量。

fileData = "";

答案 1 :(得分:0)

fileData = fileData + line;

这不是构建字符串的最佳选择...尝试用StringBuilder替换它

StringBuilder fileData = new StringBuilder(); // to instantiate
fileData.append(line + "\n"); // to add lines
String finalString = fileData.toString(); // to build the string

对于较大的字符串,您的连接方法将变得非常慢