我有这段代码:
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.
答案 0 :(得分:8)
您可以替换空格并使用equalsIgnoreCase
:
if (a.replace(" ", "").equalsIgnoreCase(b.replace(" ", ""))) {
如果您还想忽略其他空格字符,可以使用replaceAll
:
if (a.replaceAll("\\s", "").equalsIgnoreCase(b.replaceAll("\\s", ""))) {
如果您想要检查包含,请使用contains
和toLowerCase
:
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)
将a
和b
设置为小写并删除空格,然后进行比较:
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");
}