首页 > 解决方案 > 如何在JAVA中找到一个数字序列并将这些数字序列与数字2相乘?

问题描述

如何在JAVA中找到一个数字序列并仅将这些数字序列与数字2相乘?

假设我有一个字符串“我的年龄是 19”。如何获得字符串“我的年龄是 38”作为输出?

另外,稍后我如何反转字符串中的乘数。对于上面的示例输入,第二个输出应该是“我的年龄是 83”

我尝试使用 java.util.regex.Pattern。有用。但是,我们有没有其他方法可以做到这一点。可能通过将字符串转换为数组?我试过了。但我对字符串中的字符序列相乘感到震惊。相反,我可以对每个数字进行复数。但我希望数字序列乘以 2。例如,在上面的示例中,我可以将每个数字 1 和 9 乘以 2。但我希望 19 作为 2 位数字乘以 2。

标签: java

解决方案


尝试这个。

Pattern pat = Pattern.compile("\\d+");
String s = "My age is 19";
String doubled = pat.matcher(s).replaceAll(m -> "" + Integer.valueOf(m.group()) * 2);
System.out.println(doubled);
String reversed = pat.matcher(doubled).replaceAll(m -> new StringBuilder(m.group()).reverse().toString());
System.out.println(reversed);

输出

My age is 38
My age is 83

推荐阅读