-
import
- import package.* : 在指定的package中寻找被使用过的类
- import static package.成员/* : (语法糖)静态引入某类中的静态成员
-
string
- replace 与 replaceAll 的区别
public String replace(char oldChar, char newChar){} public String replace(CharSequence target, CharSequence replacement) {} public String replaceAll(String regex, String replacement) {} public String replaceFirst(String regex, String replacement) {} // 只替换第一次出现
replace的参数是char和CharSequence(String 实现了该接口),即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\d", “*”)把一个字符串所有的数字字符都换成星号;
相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;
不同点:replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\d", “"),而replace则不会,replace("\d","”)就是替换"\d"的字符串,而不会解析为正则。
- join 与 concat 的区别
System.out.println(str.concat("aaa")); //123aaa System.out.println(String.join("-","1","2")); //1-2
- contentEquals 与 equals 的区别
String str = "123" ; StringBuffer stb = new StringBuffer(str); System.out.println(str.equals(stb)); // false System.out.println(str.contentEquals(stb)); // true
String中的equals与contentEquals,这2个方法都可以用来比较String对象内容是否相同。
但是equals只能对2个String对象内容比较,否则返回false;
contentEquals比较类型为java.lang.CharSequence的对象(String,StringBuffer,StringBuilder…)内容是否相同。
- org.springframework.util.StringUtils.isEmpty 与 String.isEmpty
// org.springframework.util.StringUtils.isEmpty public static boolean isEmpty(@Nullable Object str) { return str == null || "".equals(str); } // String.isEmpty public boolean isEmpty() { return value.length == 0; }
对于
String str = null
的非空判定 String.isEmpty有: java.lang.NullPointerException