忽略字符串中的数字

时间:2014-07-02 10:48:12

标签: java string

示例:

    String t;
    String j ="j2se";
    Scanner sc =new Scanner(System.in);
    System.out.println("enter the search key:");
    t=sc.next();
    if (j.contains(t))
    {
        System.out.println("yes");
    }
    else System.out.println("no");

如果用户输入“j2”,“se”或“j2s”作为输入,则输出为“是”。如果输入是'jse',则输出为'no'。

是否有一种方法可以忽略存储在字符串搜索中的数字,例如忽略大写或小写字母?

2 个答案:

答案 0 :(得分:4)

在String上使用replaceAll("\\d+","")然后进行比较。 这将删除String中的所有数字。现在你可以使用这个新的String并进行比较。 或使用:

\\W+ // replaces everything apart from characters .

答案 1 :(得分:4)

为什么你没有juste创建这个字符串的副本,里面没有数字? 在juste将这个新字符串与你的数组进行比较之后?

喜欢:

String stringWithoutNumber = j.replaceAll("\\d+","");

stringWithoutNumber.contains(t);

许多程序都有一个名为sanitize的函数,它在comparaison之前清理url或string。

希望有所帮助

- 编辑 -

您无需将+放在\\d+中,因为方法replaceAll会替换所有数字。但它更有效,因为它减少了更换。