Java拆分功能消除空间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java拆分功能消除空间相关的知识,希望对你有一定的参考价值。
我试图将字符串放入一个有空格作为分隔符的数组中,除了第一个字符串前面有空格外,它的工作原理很好,因此数组中的第一个元素是“”而不是第一个字符串。
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;
}
有没有简单的解决方案,或者我必须编写另一个扫描仪和分隔符,什么不是。
答案
在每条读取行上调用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
}
另一答案
使用trim()
方法删除前导和尾随空格:
s = inFile.nextLine().trim().split(" ");
但是,正如@tnw指出的那样,在你的代码中只考虑最后一行......
另一答案
您可以在拆分之前使用trim()
方法。
另一答案
您也可以使用正则表达式。如果你想保存第一个空间,你需要这样的东西:
s = inFile.nextLine().split("[^s]\s+");
如果您有兴趣,您将了解更多关于regex here的信息
以上是关于Java拆分功能消除空间的主要内容,如果未能解决你的问题,请参考以下文章