3 回答

TA贡献1851条经验 获得超3个赞
分割每一行并过滤空间。忽略循环中的第一行:
boolean firstLine = true;
List<List<Character>> chars = new ArrayList<>();
while ((strLine = br.readLine()) != null) {
if (firstLine) {
firstLine = !firstLine;
continue;
}
chars.add(strLine.chars().filter(e -> e != ' ').mapToObj(e -> (char) e).collect(Collectors.toList()));
}
字符包含输出:[['a', 'b'], ['c', 'd']]

TA贡献1828条经验 获得超4个赞
正如你在评论中提到的,你需要
['a', 'b', 'c', 'd', 'a', 'd', ...]
这个列表如果输入是这样的:
a b c d
a d
a c
d b
...
所以你想出了如何做到这一点:
["a b c d", "a d", "a c", "d b", ...]
我会告诉你接下来的步骤。让这个列表成为lines。
现在,遍历 的所有元素,lines然后遍历该元素的每个字符,并将所需信息保存在另一个List.
for (String line: lines) {
for (char chr: line) {
if (chr == ' ') {
continue;
} else {
characters.add(chr);
}
}
}
现在您的characters列表将如下所示
['a', 'b', 'c', 'd', 'a', 'd', ...]

TA贡献1775条经验 获得超8个赞
String[] strArray = new String[letters.size()];
strArray = letters.toArray(strArray);
letters.clear();
for(String A:strArray) {
String[] arrOfStr = A.split(" ");
for(String B:arrOfStr) {
letters.add(B);
}
}
输出将如下所示
[a, b, c, d, a, d, a, c, d, b]
添加回答
举报