删除'|' ,数字和用字符串-Java中的空字符替换

cle*_*lem 1 java string replace

例:

    String s1 = JOptionPane.showInputDialog("enter the string");
    String s2 = "h2ow |are you";


    if (s2.replace all("\\d+","").replaceAll("|", "").contains(s1))
        JOptionPane.showMessageDialog(null, "true");

    else
        JOptionPane.showMessageDialog(null, "false");
Run Code Online (Sandbox Code Playgroud)

如果输入输入为"如何"输出为真

但是,当我输入"如何"输出是错误的.

有没有方法可以替换'|'(垂直条)?

ali*_*ind 7

您需要转义管道符(|).未转义,它是正则表达式"或"运算符.

试试这个:

s2.replaceAll("\\d|\\|", "").contains(s1)
Run Code Online (Sandbox Code Playgroud)

这使用文字管道(regex = \|,为Java =转义"\\|")和实际的管道(|).它说,用任何东西替换任何数字或文字管道字符.

注意,正如@alfasin所述,该函数是命名的replaceAll,而不是replace_all.

此外,如果要在同一执行中重复使用此函数,则考虑重用matcher对象,而不是使用字符串版本(每次都创建一个Matcher对象).


请考虑将Stack Overflow Regular Expression FAQ添加为书签,以备将来参考.