Java拆分功能消除空间

时间:2015-04-27 19:47:22

标签: java split delimiter

我正在尝试将字符串放入一个以空格作为分隔符的数组中,除了第一个字符串前面有空格外,它的效果很好,因此数组中的第一个元素是“”而不是第一个字符串。

    public static String[] loadMessage(String fileName)
        throws FileNotFoundException {
    String[] s = null;
    File f = new File(fileName + ".txt");
    Scanner inFile = new Scanner(f);
    while (inFile.hasNext()) {
        s = inFile.nextLine().split(" ");

    }
    inFile.close();
    return s;

}

是否有任何简单的解决方案,或者我必须编写另一个扫描仪和分隔符,什么不是。

4 个答案:

答案 0 :(得分:3)

在每条读取行上调用String.trim(),删除前导和尾随空格:

s = inFile.nextLine().trim().split(" ");

您还可以使用Files.readAllLines()将所有行读入List

for (String line : Files.readAllLines(Paths.get(fileName + ".txt",
                 StandardCharsets.UTF_8))) {
    String[] words = line.trim().split(" ");
    // do something with words
}

答案 1 :(得分:2)

使用file方法删除前导和尾随空格:

trim()

但是,正如@tnw指出的那样,在你的代码中只考虑最后一行...

答案 2 :(得分:2)

您可以在拆分前使用trim()方法。

答案 3 :(得分:0)

您也可以使用正则表达式。如果你想保存第一个空格,你需要这样的东西:

s = inFile.nextLine().split("[^s]\\s+"); 

如果您有兴趣,可以了解有关正则表达式here

的更多信息