Android常用的工具类TextUtils

「这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战

Android常用的工具类TextUtils

安卓的SDK或者JAVA中其实内置了很多好用的方法,工欲善其事,必先利其器,熟练的使用它可以达到事半功倍的效果。这篇文章列出常用工具类TextUtils的方法给大家做个参考。

该方法出自android.text,安卓为了更方便的处理字符串,给我们提供了一个简单方便的工具类。我把常用的方法和注意事项总结了出来。

  • isEmpty 判断内容是否为空 需要注意的是,无论内容为null,还是“”,最终的结果都是返回真。 还在写 str == null 或者 string.equals("")的同学可以改改了。

    参数:str 要检查的字符串 返回:如果str为null或长度为零,则为true

     public static boolean isEmpty(@Nullable CharSequence str) {
          return str == null || str.length() == 0;
      }
    

    很多人也会误认为空格也能返回true,实际上空格也算是有值,只是值是空格, 所以如果要判断输入框是否有值的话,需要先进行trim(),然后再进行isEmpty().

  • concat 拼接字符串,注意参数类型是(CharSequence... text) ,意味着可以有多个可选参数。

    String string = (String) TextUtils.concat("12", "34", "56");
    Log.d(TAG, "string:" + string); // 123456
    
  • getReverse 反转字符串,根据索引轻松截取并反转

     String org = "123abc";
     String string = TextUtils.getReverse(org, 0, org.length()).toString();
     Log.d(TAG, "string:" + string); // cba321
    
  • equals 判断两个字符串是否相等,参数可以为null,即使为null也可以判断,两个null进行对比,结果返回为true。 而直接使用字符串.equals时,还需要麻烦的判断是否为null。

    Log.d(TAG, "result:" + TextUtils.equals("", "")); // true
    Log.d(TAG, "result:" + TextUtils.equals(null, null)); // true
    
  • getTrimmedLength 去除开始和结束空格之后的字符串长度,注意字符串中间的空格会包含在内

    String string = " 1 23 ";
    int length = TextUtils.getTrimmedLength(string);
    Log.d(TAG, "length:" + length); // 4
    
  • isDigitsOnly 判断字符串内容是否全部为数字。如果没有该方法,判断起来会非常麻烦。值得注意的地方,空格也会认为非数字。

     String string = " 12 3 ";
     boolean flag = TextUtils.isDigitsOnly(string);
     Log.d(TAG, "flag:" + flag); // false
     
     String string = "123";
     boolean flag = TextUtils.isDigitsOnly(string);
     Log.d(TAG, "flag:" + flag); // true
    
  • ellipsize 超出长度之后字符串的部分变成省略号的显示方式。 等同于布局文件中的android:ellipsize="" 属性。它有四个参数,第一个参数是要截取的字符串,第二个参数是文字组件的textPaint,第三个属性是文字的宽度,第四个属性就是哪里的内容变成省略号。

  • getOffsetAfter / getOffsetBefore 获取文本的偏移量,并不常见。

猜你喜欢

转载自juejin.im/post/7029144174528036901