0

我正在尝试做这样的事情,但我似乎没有工作

String test = input.matches("[^a-zA-Z\\s]");

我收到一条错误消息incompatible types

有没有办法解决这个或任何其他方法?

编辑

这就是我想要实现的目标

可以说我有这个字符串

String full = " This i$ an aaasdAr yeEeeAs oofo qwdsgy XY9 ";

我需要输出为$9

这行得通,但有点太乱了

 for (int index = 0; index <= input.length() - 1; index ++)
            {
                if(String.valueOf(input.charAt(index)).matches("[^a-zA-Z\\s]"))
            {

            System.out.print(String.valueOf(input.charAt(index)));
            }
        }
4

2 回答 2

4

方法matches返回一个布尔值。当您尝试将其分配给 aString时,您会收到编译错误。

于 2013-01-17T18:02:08.383 回答
1

要解决您的特定问题,您可以使用String.replaceAll,它需要一个替换正则表达式:

String input = " This i$ an aaasdAr yeEeeAs oofo qwdsgy XY9 ";
String output = input.replaceAll("[a-zA-Z\\s]", "");
System.out.println(output);

这会将与正则表达式匹配的所有内容替换为空字符串,并打印$9.

于 2013-01-17T18:13:49.903 回答