该程序应该接受用户输入并删除其中的任何数字,但很明显,有些错误。
private static String removeNum(String inp)
{
String newInp = new String();
char[] inpChars = inp.toCharArray();
for(char output:inpChars)
{
if(output==0 || output==1 || output==2 || output==3 || output==4 || output==5 || output==6 || output==7 || output==8 || output==9)
{
}
else
{
newInp += output;
}
}
return newInp;
}
public static void main(String[] args)
{
EasyReader console = new EasyReader();
System.out.print("Enter input: \n");
String inp = console.readLine();
System.out.print("Output: \n");
System.out.print(removeNum(inp));
}
答案 0 :(得分:4)
通过将char
与int
进行比较,您进行了错误的比较。
而不是
if(output==0 || output==1 || ...
你应该使用
if(output=='0' || output=='1' || ...
答案 1 :(得分:3)
您实际上可以节省大部分代码并使用正则表达式:
private static String removeNum(String inp) {
return inp.replaceAll("[0-9]","");
}
答案 2 :(得分:2)
您应该将if
语句中的每个数字放入单引号中,如下所示:if (output == '0' || output == '1' ... )
。
您也可以使用效率更高的条件:Character.isDigit(output)
。在这种情况下,整个条件将如下所示:
if (Character.isDigit(output)) {
...
}
答案 3 :(得分:1)
在数字周围加上单引号。如果没有它们,则不会引用所需的字符,而是引用具有指定编号的字符。