通过将比较的两个字符串都转换为小写,然后再比较它们,可以实现忽略大小写的比较。 下面是一个使用toLowerCase方法实现忽略大小写比较的示例代码: Stringstr1="Hello";Stringstr2="hello";if(str1.toLowerCase().equals(str2.toLowerCase())){System.out.println("两个字符串相等");}else{System.out.println(...
在这个类中,equals 要做到与普通的字符串比较时不区分大小写,其问题在于 String 类中的 equals 方法并不知道不区分大小写,因此反过来比较并不成立,违反了对称性。 package test.ch01; public class Test { public static void main(String[] args) { CaseInsensitiveString cis = new CaseInsensitiveString("Hello...
if(objinstanceofCaseInsensitiveString) returns.equalsIgnoreCase(((CaseInsensitiveString) obj).s); if(objinstanceofString) returns.equalsIgnoreCase((String) obj); returnfalse; } } 这个例子显然违反对称性,即x.equals(y)为true 但 y.equals(x)为false。 不仅是在显示调用时,如果将这种类型作为泛型放到集合...
publicfinalclassCaseInsensitiveString{privateString s;publicCaseInsensitiveString(String s){if(s ==null)thrownewNullPointerException();this.s = s; }publicbooleanequals(Object o){if(oinstanceofCaseInsensitiveString)returns.equalsIgnoreCase(((CaseInsensitiveString) o).s);if(oinstanceofString)returns.equa...
return s.equalsIgnoreCase(((CaseInsensitiveString) o).s); if (o instanceof String) return s.equalsIgnoreCase(((String) o)); return false; 注意:equals方法中的参数Object o ,一定不要定义成其他类型!! 在绝大多数情况都要加上一句instanceof 来给o 赋予类型!!!
toLowerCase()方法是String类中的一个方法,用于将字符串转换为小写形式。通过将两个字符串都转换为小写形式,再进行比较,可以实现忽略大小写的效果。以下是使用该方法的示例代码:Stringstr1="Hello";Stringstr2="hello";booleanisEqual=str1.toLowerCase().equals(str2.toLowerCase());System.out.println(is...
通过CharSequences)进行全局替换,但最后一个没有简单的布尔参数:'isCaseInsensitive'。
在这个例子中很明显,如果我们创建一个String和一个CaseInsensitiveString的两个实例,就产生了非对称的结果,如下: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 CaseInsensitiveString cis=newCaseInsensitiveString("Polish");String s="polish"; 如同我们预料的那样,cis.equals(s)返回true,但是s.equals(cis)...
请注意,CaseInsensitiveString类实现了Comparable <CaseInsensitiveString>接口。 这意味着CaseInsensitiveString引用只能与另一个CaseInsensitiveString引用进行比较。 当声明一个类来实现Comparable接口时,这是正常模式 在本书第二版中,曾经推荐如果比较整型基本类型的属性,使用关系运算符“<”和“>”,对于浮点类型基本类型的...
.1 CaseInsensitiveComparator的实现只是String作者提供了一种不同于String::compareTo的比较策略, 如果说Compareable是比较的内部实现, 那么Comparator就是比较的外部实现; .2 Comparator这种方式实现了策略模式, 将变与不变完美分类; 关于设计模式后面再开专题分享; ...