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

vij*_*ayk 0 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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

ars*_*jii 8

您可以替换空格并使用equalsIgnoreCase:

if (a.replace(" ", "").equalsIgnoreCase(b.replace(" ", ""))) {
Run Code Online (Sandbox Code Playgroud)

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

if (a.replaceAll("\\s", "").equalsIgnoreCase(b.replaceAll("\\s", ""))) {
Run Code Online (Sandbox Code Playgroud)

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

if (a.replace(" ", "").toLowerCase().contains(b.replace(" ", "").toLowerCase())) {
Run Code Online (Sandbox Code Playgroud)

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

  • @Vdolez` trim()`只删除开头和结尾的空格,而不是字符串中间的空格,所以如果你想忽略所有的空格,这将不起作用. (2认同)