Java搜索字符串,然后复制并替换

时间:2019-10-09 14:30:00

标签: java string search replace duplicates

(这里是绝对的初学者),所以我有一个看起来像这样的列表:

XX5.9
XX5.10
XY5.9
XY5.10

我的计划是一个小型程序,它搜索5.9(作为字符串。所有字符串都是。),将其复制并将其放在上方。然后将其更改为5.8。像这样:

XX5.8 <-- New
XX5.9
XX5.10
XY5.8 <--New
XY5.9
XY5.10

在Java中我该怎么做? (我现在没有任何代码)

2 个答案:

答案 0 :(得分:0)

假设您向我们显示的输入存储在常规Java字符串中,则可以尝试以下正则表达式替换:

String input = "XX5.9\nXX5.10\nXY5.9\nXY5.10";
System.out.println(input + "\n");
String output = input.replaceAll("\\b([A-Z]+)5\\.9\\b", "$15.8\n$15.9");
System.out.println(output);

此打印:

XX5.9
XX5.10
XY5.9
XY5.10

XX5.8
XX5.9
XX5.10
XY5.8
XY5.9
XY5.10

答案 1 :(得分:0)

最好提供您尝试过的解决方案,以便我们为您提供帮助。

对于这个问题,我会写如下:

List<String> strings = Arrays.asList("XX5.9", "XX5.10", "XY5.9", "XY5.10");

        strings.stream().flatMap(x -> {
            if (x.contains("5.9")) {
                return Stream.of(x.replaceFirst("5.9", "5.8"), x);
            } else {
                return Stream.of(x);
            }
        }).collect(Collectors.toList())
         .forEach(System.out::println); // this is for debug purpose
相关问题