(这里是绝对的初学者),所以我有一个看起来像这样的列表:
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中我该怎么做? (我现在没有任何代码)
答案 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