首页 > 解决方案 > Java如何拆分字符串并删除其中的一部分?

问题描述

我有一个(List <String> titles)这样的字符串列表:

                    "xxxl54.AE",
                    "xxxl56.AP",
                    "xxxl57.AE",
                    "xxxl58.VP",
                    "xxxl59.WR",
                    "xxxl56.SD"

但我想得到这个:

                    "xxxl54",
                    "xxxl56",
                    "xxxl57",
                    "xxxl58",
                    "xxxl59",
                    "xxxl56"

如何删除点右侧的部分?

标签: javalistsplit

解决方案


您需要使用默认字符串方法String.substringString.indexOf的组合

要修改列表中的每个项目,您可以使用stream().map并将其再次保存为修改后的列表collect(Collectors.toList())

List <String> titles = new ArrayList<>();
titles.add("xxxl54.AE");
titles = titles.stream().map(it -> it.substring(0, it.indexOf("."))).collect(Collectors.toList());

但要小心 - 如果其中一项没有“。” 在其内容中,您需要单独处理:

List <String> titles = new ArrayList<>();
titles.add("xxxl54.AE");
titles.add("xxxl00AE");
titles = titles.stream().map(it -> {
    int dotIndex = it.indexOf(".");
    if(dotIndex != -1) {
        it.substring(0, dotIndex);
    }
    return it;
}).collect(Collectors.toList());


推荐阅读