为了账号安全,请及时绑定邮箱和手机立即绑定

将输入拆分两次

将输入拆分两次

德玛西亚99 2021-09-26 16:29:21
我目前遇到了一个列表问题。列表看起来像这样a b c da da cd b...第一行是索引,使用后将被删除。其余的将在以后需要。while ((strLine = br.readLine()) != null)   {line.add(strLine);}//...line.remove(0);这样就创建了一个列表(“行”)。现在我想通过删除空格再次拆分列表。任何帮助,将不胜感激!先感谢您!
查看完整描述

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']]


查看完整回答
反对 回复 2021-09-26
?
明月笑刀无情

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', ...]


查看完整回答
反对 回复 2021-09-26
?
www说

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]


查看完整回答
反对 回复 2021-09-26
  • 3 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号