无法检测空格或标点符号

时间:2014-01-17 02:56:30

标签: java

代码基本上是abc123到abc246的两倍。现在问题是它不会检测空格或标点符号,它会给我一个错误的行int i = Integer.parseInt(sentence);.有任何想法吗?感谢

编辑:此代码通过扫描程序请求用户输入句子。

        else
        {
            String woah = sentence;
            sentence = sentence.replaceAll("\\D", "");
            int i = Integer.parseInt(sentence);
            int j = i * 2 ;
            woah = woah.replaceAll("" + i, "" + j);
            System.out.println(woah);
        }

3 个答案:

答案 0 :(得分:0)

不确定为什么你的正则表达式(“\ D”)不适合你,它对我有用。或者,您可以为下面的正则表达式提供一个镜头。

    sentence = sentence.replaceAll("[^0-9]", "");

答案 1 :(得分:0)

正则表达式是可靠的,应删除所有非数字字符。如果String中没有数字,该行应该只抛出异常。这让我相信你在输入时犯了错误。

您是使用Scanner.nextLine进行输入还是Scanner.next?如果你没有使用分隔符,你应该使用前者。

答案 2 :(得分:-1)

更简单的方法:

StringBuilder woah = new StringBuilder();
StringBuilder number = new StringBuilder();
for(int i = 0; i < sentence.length(); i++) {
   char c = sentence.charAt(i);

   if(Character.isDigit(c)) {
      number.append(c);
   } else {
      woah.append(c);
   }

   woah.append(Integer.parseInt(number.toString()) * 2);

   System.out.println(woah.toString());
}