【问题标题】:Java How to split String and delete a part of it?Java如何拆分字符串并删除其中的一部分?
【发布时间】:2021-05-20 14:38:54
【问题描述】:

我有一个字符串列表(List <String> titles),如下所示:

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

但我想得到这个:

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

如何删除点右侧的部分?

【问题讨论】:

标签: java list split


【解决方案1】:

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

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);

【讨论】:

  • 请问您能把所有的步骤都写出来吗??
  • 这只是一个单行。没有更多步骤了。
  • 非常感谢...你帮了我很多
【解决方案2】:

您需要结合使用默认的 String 方法 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());

【讨论】:

    猜你喜欢
    • 2016-02-12
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2021-07-17
    相关资源
    最近更新 更多