Java基础之String漫谈(二)
1. 导读
上篇博客分享了本人关于String四个问题, 本篇我们继续探讨String中的两个问题: 1 String既然已经实现了Comparable接口, 为什么还要提供内部类----CaseInsensitiveComparator; 2 使用 "+" 拼接String究竟干了什么? 为什么在循环中不让使用"+"拼接String;
2. String为什么要提供内部类CaseInsensitiveComparator
先来看下String实现了Comparable接口后做了什么:
String::compareTo做了三件事: 1 比较两个字符串的长度, 找出最小值; 2 比较最小长度中的字符是否相同, 因底层使用ASCII码存储, 10进制的ASCII是纯数字, 可直接减得出比较结果(compareTo规定: 返回-1是小于; 0是等于; 1是大于); 3 如果最小长度的字符都相同, 再比较两个字符串的长度是否相同;
字符串是可能含有大小写的, 在String::compareTo中认为A和a是不同的, 那么在忽略大小写的
共有 0 条评论