识别字符串中的特定字符并将其删除 - 不起作用

Identify specific characters in a String and remove it - Doesn't work

这个程序应该接受用户输入并删除其中的任何数字,但很明显,出了点问题。

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));
}

您将 charint 进行比较,结果不正确。

而不是

if(output==0 || output==1 || ...

你应该使用

if(output=='0' || output=='1' || ...

在数字两边加上单引号。没有它们,你指的不是你想要的字符,而是指定编号的字符。

您应该将 if 语句中的每个数字放入单引号中,例如:if (output == '0' || output == '1' ... ).

您也可以使用更有效的条件:Character.isDigit(output)。在这种情况下,整个条件将如下所示:

if (Character.isDigit(output)) {
    ...
}

您实际上可以节省大部分代码并使用正则表达式:

private static String removeNum(String inp) {
    return inp.replaceAll("[0-9]","");
}