java 中的字符串的注意事项

  • 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值