如何比较两个字符串而不考虑空格和java中的字符串大小写?

时间:2014-06-05 13:32:20

标签: java string

我有这段代码:

public class TestString {

    public static void main(String[] args) {
        String a = "Vijay Kakade";
        String b = "vij";

        if (a.contains(b)) {
            System.out.println("11");
        } else {
            System.out.println("22");
        }
    }
}

此示例应返回11,但返回22.

5 个答案:

答案 0 :(得分:8)

您可以替换空格并使用equalsIgnoreCase

if (a.replace(" ", "").equalsIgnoreCase(b.replace(" ", ""))) {

如果您还想忽略其他空格字符,可以使用replaceAll

if (a.replaceAll("\\s", "").equalsIgnoreCase(b.replaceAll("\\s", ""))) {

如果您想要检查包含,请使用containstoLowerCase

if (a.replace(" ", "").toLowerCase().contains(b.replace(" ", "").toLowerCase())) {

同样,如果您想忽略其他空格字符,请使用replaceAll("\\s", ""),如上所示。

答案 1 :(得分:4)

使用replace()删除空格,并使用toLowerCase()将两个字符串放在同一个案例中,然后使用contains()

if (a.replace(" ", "").toLowerCase().contains(b.replace(" ", "").toLowerCase()))

使这个null安全(将null定义为不等于任何东西,甚至不是另一个null):

if (a != null && b != null && a.replace(" ", "").toLowerCase().contains(b.replace(" ", "").toLowerCase()))

或者,如果null被认为与另一个null“相等”:

if (!((a == null) ^ (b == null)) || a != null && a.replace(" ", "").toLowerCase().contains(b.replace(" ", "").toLowerCase()))

答案 2 :(得分:2)

试试这个

     String a = "V    i     jay Kakade";
        String b = "vI  j";
        if (a.toLowerCase().replaceAll("\\s", "").trim().contains(b.trim().toLowerCase().replaceAll("\\s", ""))) {
            System.out.println("11");
        } else {
            System.out.println("22");
        }

答案 3 :(得分:1)

ab设置为小写并删除空格,然后进行比较:

    String a = " V I J a y Kakade";
    String b = " V i j ";

    a = a.toLowerCase().replaceAll("\\s","");
    b = b.toLowerCase().replaceAll("\\s","");

    if (a.contains(b)) {
        System.out.println("11");
    } else {
        System.out.println("22");
    }

答案 4 :(得分:0)

字符串a =“V I J a y Kakade”;     字符串b =“V i j”;

a = a.toLowerCase().replaceAll("\\s","");
b = b.toLowerCase().replaceAll("\\s","");

if (a.contains(b)) {
    System.out.println("11");
} else {
    System.out.println("22");
}