繁体   English   中英

Java 如何拆分String并删除一部分?

[英]Java How to split String and delete a part of it?

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

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

但我想得到这个:

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

如何删除点右侧的部分?

您需要使用默认字符串方法String.ZE83AED3DDF4667DEC0DAAAACB2BB3BE0BZString.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());

如果要替换原始列表中的字符串:

titles.replaceAll(e -> e.split("\\.")[0]);

例子:

List<String> titles = new ArrayList<>();
titles.add("xxxl54.AE");
titles.add("xxxl56.AP");
titles.add("xxxl57.AE");

System.out.println("Before: " + titles);

titles.replaceAll(e -> e.split("\\.")[0]);

System.out.println("After: " + titles);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM