java - 某些带有数字的短语不会乘以 2

标签 java string

嗨,我有一个项目,基本上可以找到我拥有的所有数字并将它们乘以 2。我已经完成了 90%,但对于其他 10%,某些输入不起作用。

所以我的代码找到用户输入中的所有数字并将它们乘以 2。 (例如,123woah 变为 246woah,woah888 变为 woah1776) 谁能找到我的错误并向我解释我需要做什么?

编辑:例如,不起作用的情况类似于 1abc1。如果数字位于不同位置,则该代码不起作用。

谢谢

    import java.util.Scanner;
    public class MultiplyBy2
    {
        public static void main(String[] args)
        {
            int EXIT = 0;
            while(EXIT == 0)
            {
                Scanner kbReader = new Scanner(System.in);
                System.out.println("input?");
                String String1 = kbReader.nextLine();
                if(String1.equalsIgnoreCase("exit"))
                {
                    break;
                }        
                else
                {
                    String String2 = String1;
                    String1 = String1.replaceAll("\\D", "");
                    int i = Integer.parseInt(String1);
                    int j = i * 2 ;
                    String2 = String2.replaceAll("" + i, "" + j);
                    System.out.println(String2);
                }
            }
        }
    }

最佳答案

给你:

String String1="1abc1";  // or woah888
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(String1);
while (m.find()) {
   Integer temp=Integer.parseInt(m.group());
   Integer temp2=temp*2;
   String1=String1.replaceFirst(temp.toString(),temp2.toString());
}
System.out.println(String1);

<强> Demo

关于java - 某些带有数字的短语不会乘以 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21447554/

相关文章:

java - 计算字符串中逗号分隔的正数和负数的总出现次数

javascript - 用字符串中的第一个连字符拆分字符串

java - 实体字段集上的 Hibernate NullPointerException(更新)

java - 给定的 html 文件只提取有意义的文本

java - 从二叉树中随机选择一个节点

python - 如何使用Python中的路径变量使用opencv读取图像

java - StringIndesOutOfBoundsException : length=0; index=2 error in Java

JavaFx 和内存消耗

java - jdbc 开始失败

java - 在 For 循环中执行递归