所以我有一个表格的输入文件:
AdjGraphHeader
11
20
30
.
.
.
我需要创建一个字符串数组,分别保存每一行。所以我使用以下方式阅读文件:
String s = FileUtils.readFileToString(f);
Words w = new Words(s, (long)s.length());
然后单词构造函数执行以下操作:
public Words(String str, long n_) {
strings = str.split("\\n");
string = str;
n = n_;
m = strings.length;
}
问题似乎是adjGraphHeader
末尾有一条额外的行,但我不知道如何摆脱它。任何帮助将不胜感激。
答案 0 :(得分:1)
我怀疑你的行不是由\n
分隔,而是由\r\n
分隔,所以如果你移除\n
,你仍然会在每个单词后面\r
并且在打印它时你会看到空行。解决方案之一可能是使用此正则表达式进行拆分
"\r?\n|\r"
- ?
使元素在可选之前描述,|
代表“或”运算符
\r
\r\n
\n
,会处理行分隔符。
你也可以使用更简单的东西
List<String> lines = Files.readAllLines(Paths.get("locationOfFile"));
或者您已经拥有File f
List<String> lines = Files.readAllLines(f.toPath());
并将每一行存储在列表中(如果确实需要,可以稍后convert this list to array)