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

b1zrtrql  于 2021-07-04  发布在  Java
关注(0)|答案(3)|浏览(307)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

4个月前关门了。
改进这个问题
在java中,如何找到一个数字序列并只将这些数字序列与数字2相乘?
假设我有一个字符串“我的年龄是19岁”。如何获得字符串“my age is 38”作为输出?
另外,以后如何反转字符串中的乘法。对于上面的输入示例,第二个输出应该是“my age is 83”
我尝试使用java.util.regex.pattern。它起作用了。但是,我们还有别的办法吗。可能是通过将字符串转换成数组?我试过了。但我对字符串中的字符序列相乘感到震惊。相反,我可以把每个数字都数倍。但是我想把数字序列乘以2。例如,在上面的例子中,我可以将每个数字1和9乘以2。但是我想要19作为一个2位数乘以2。

sxissh06

sxissh061#

我假设你说的是把整个字符串“我的年龄是20”乘以2。如果是这样,就没有办法达到你想要的输出。
你可以做的是,在整个字符串上循环,找到一个以数字形式出现的节,并检查该节。有几种方法可以检查字符串是否为数字,下面的链接将讨论其中的一些方法。
如何在java中检查字符串是否为数字
之后,您可以对(已解析的)数字字符串执行乘法,然后将它们添加回字符串。

u59ebvdq

u59ebvdq2#

试试这个。

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
b0zn9rqh

b0zn9rqh3#

您可以使用正则表达式并执行以下操作

//set regexp pattern with group representing number
    Pattern pattern = Pattern.compile("My age is (\\d+)");
    //get number from string
    Matcher matcher = new Matcher(pattern, "My age is 20");
    matcher.find();
    int age = Integer.parseInt(matcher.group(1));
    //multiply
    int result = age * 2;

相关问题