Java 将输入拆分两次
我目前在列表方面遇到了一个问题。 列表如下所示Java 将输入拆分两次,java,list,split,Java,List,Split,我目前在列表方面遇到了一个问题。 列表如下所示 a b c d a d a c d b ... ['a', 'b', 'c', 'd', 'a', 'd', ...] [a, b, c, d, a, d, a, c, d, b] 第一行是索引,在使用后将被删除。其余的将在以后需要 while ((strLine = br.readLine()) != null) { line.add(strLine); } //... line.remove(0); 这样就创建了一个列表(“行”)。
a b c d
a d
a c
d b
...
['a', 'b', 'c', 'd', 'a', 'd', ...]
[a, b, c, d, a, d, a, c, d, b]
第一行是索引,在使用后将被删除。其余的将在以后需要
while ((strLine = br.readLine()) != null) {
line.add(strLine);
}
//...
line.remove(0);
这样就创建了一个列表(“行”)。
现在我想通过删除空格再次拆分列表
任何帮助都将不胜感激!
提前谢谢你 正如您在评论中提到的,您需要
['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", ...]
我会告诉你进一步的步骤。将此列表设为行
现在,循环检查行的所有元素,然后循环检查该元素的每个字符,并将所需信息保存在另一个列表中
for (String line: lines) {
for (char chr: line) {
if (chr == ' ') {
continue;
} else {
characters.add(chr);
}
}
}
现在,您的字符列表将如下所示
a b c d
a d
a c
d b
...
['a', 'b', 'c', 'd', 'a', 'd', ...]
[a, b, c, d, a, d, a, c, d, b]
拆分每行并过滤空间。忽略循环中的第一行:
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()));
}
boolean firstLine=true;
列表字符=新的ArrayList();
而((strLine=br.readLine())!=null){
如果(第一线){
firstLine=!firstLine;
继续;
}
添加(strLine.chars().filter(e->e!='').mapToObj(e->(char)e.collect(Collectors.toList());
}
Chars包含输出:['a','b',['c','d']]如果我在注释中理解正确,您需要以下输入:
a b c d
a d
a c
d b
c a
要成为以下两个列表(忽略第一行输入):
由于您已经完成了部分工作(将输入行放入列表中并删除第一行),因此我将继续:
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
for(String line : lines){
String[] splitLine = line.split(" ");
list1.add(splitLine[0]);
list2.add(splitLine[1]);
}
List list1=new ArrayList();
List list2=新的ArrayList();
用于(字符串行:行){
String[]splitLine=line.split(“”);
列表1.add(拆分行[0]);
列表2.添加(拆分行[1]);
}
这将按空格分隔每行,并将第一个字符放在第一个列表中,第二个字符放在第二个列表中
如果确实需要两个数组而不是列表,则可以执行以下操作:
int amountOfLines = lines.size();
String[] array1 = new String[amountOfLines];
String[] array2 = new String[amountOfLines];
for(int i = 0; i < amountOfLines; i++){
String[] splitLine = lines.get(i).split(" ");
array1[i] = splitLine[0];
array2[i] = splitLine[1];
}
int-amountOfLines=lines.size();
字符串[]数组1=新字符串[amountofline];
String[]array2=新字符串[amountofline];
for(int i=0;i
输出将如下所示
a b c d
a d
a c
d b
...
['a', 'b', 'c', 'd', 'a', 'd', ...]
[a, b, c, d, a, d, a, c, d, b]
Java 8(功能)版本:
我不知道你在问什么。使用拆分功能?输入中是否有空格行?是否希望[“abcd”,“ad”,“ac”,“db”,…]
?现在列表看起来是这样的[“a b c d”,“a d”,“a c”,“d b”,…],我想删除空格。没有“ListName”。但是拆分函数。你能在你的问题中提供一个输入和输出的适当例子吗?!这让我有点尴尬,因为我没有想到这种方法。我想我会更复杂。谢谢。[['a',b',['c',d']]
,这是请求吗?@dude coder是的,在下面的最后一条评论中question@DudeCoder基于,这就是他想要实现的。。不过,他对实际问题的描述确实说明了另一个问题。