在Java8中,用函数求值替换正则表达式的等价物是什么?
我有一个这样的字符串在Java8中,用函数求值替换正则表达式的等价物是什么?,java,regex,replace,transformation,java-8,Java,Regex,Replace,Transformation,Java 8,我有一个这样的字符串“4+5=9;”,我想在找到的每个数字中添加一个 我想对每个匹配使用正则表达式和转换函数 我知道如何在Java String.valueOf(Long.parseLong(s)+1)中实现它; System.out.println(res);//5 + 6 = 10 您可以使用内置的流api来实现这一点 我们可以做到以下几点: String input = "4 + 5 = 9;"; String out = input.chars() .mapToObj(
“4+5=9;”
,我想在找到的每个数字中添加一个
我想对每个匹配使用正则表达式和转换函数
我知道如何在Java String.valueOf(Long.parseLong(s)+1)中实现它;
System.out.println(res);//5 + 6 = 10
您可以使用内置的
流api
来实现这一点
我们可以做到以下几点:
String input = "4 + 5 = 9;";
String out = input.chars()
.mapToObj(i -> String.valueOf((char) i))
.map(s -> s.matches("[0-9]") ? String.valueOf((Integer.parseInt(s) + 1)) : s)
.collect(Collectors.joining());
System.out.println(out); // prints 5 + 6 = 10;
在Java 8中似乎没有任何新的内容。看起来不错,认为这是正确的方法。这种方法只适用于没有上下文的1个字符(或分隔符)字符串。对
a+1=6
尝试同样的方法。无法理解您的意思,但a+1=6
的结果是a+2=7
。
String input = "4 + 5 = 9;";
String out = input.chars()
.mapToObj(i -> String.valueOf((char) i))
.map(s -> s.matches("[0-9]") ? String.valueOf((Integer.parseInt(s) + 1)) : s)
.collect(Collectors.joining());
System.out.println(out); // prints 5 + 6 = 10;