Discuz!NT|BBS|论坛

注册

 

发新话题 回复该主题

TextUtils用法 [复制链接]

1#
  1. String a = "Android";
  2. String b = " Studio";
  3. String c = "012345";
  4. String d = " \n\t \b";
  5. String e = "11-233-we-7d-fv";
  6. String f = "<html>\n<body>\n<h1>My First Heading</h1>\n<p>My first paragraph.</p>\n</body>\n</html>";
  7. Log.e("tag", TextUtils.isEmpty(a) + "");// 字符串是否为null或“”
  8. Log.e("tag", TextUtils.isDigitsOnly(c) + "");// 字符串是否全是数字
  9. Log.e("tag", TextUtils.isGraphic(d) + "");// 字符串是否含有可打印的字符

  10. Log.e("tag", TextUtils.concat(a, b) + "");// 拼接多个字符串
  11. Log.e("tag", TextUtils.getTrimmedLength(b) + "");// 去掉字符串前后两端空格(相当于trim())之后的长度
  12. Log.e("tag", TextUtils.getReverse(b, 0, b.length()) + "");// 在字符串中,start和end之间字符的逆序
  13. List<String> list = new LinkedList<String>();
  14. list.add("I");
  15. list.add("love");
  16. list.add("you");
  17. Log.e("tag", TextUtils.join("-", list));// 在数组中每个元素之间使用“-”来连接

  18. String[] arr = TextUtils.split(e, "-");// 以"-"来分组
  19. for (int i = 0; i < arr.length; i++) {
  20. Log.e("tag", arr[i]);
  21. }
  22. Log.e("tag", TextUtils.htmlEncode(f) + "");// 使用html编码字符串

  23. 作者:一只好奇的茂
  24. 链接:[url]https://www.jianshu.com/p/10317ca3bff9[/url]
  25. 來源:简书
  26. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
复制代码
  1. String str=" ";
  2. /**判断一个字符串是否为空(null||length==0),空格返回false
  3. * Param:CharSequence
  4. * Return:boolean
  5. */
  6. String str2="sfsafsafjo";
  7. TextUtils.isEmpty(str);//false

  8. char cs[] =new char[3];
  9. /**从字符串中取指定范围的字符串到char[]中
  10. * @Param1:CharSequence 字符串源
  11. * @Param2:int 开始的位置
  12. * @Param3:int 结束的位置(不包括)
  13. * @Param4:char[] 目标字符数组
  14. * @Param5:在char[]的偏移量
  15. */
  16. TextUtils.getChars(str2,2,5,cs,0);
  17. Logger.d(cs);//[s, a, f]

  18. /**
  19. * 指定字符在字符串中第一次出现的位置
  20. * @Param CharSequence 源字符串
  21. * @Param char 被检测的字符
  22. * @Param 开始检测的位置
  23. * @Param 结束检测的位置
  24. * @Return int 位置
  25. */
  26. int index = TextUtils.indexOf(str2, 'a');
  27. index = TextUtils.indexOf(str2, 'a',0);
  28. index = TextUtils.indexOf(str2, 'a',str.length()); //3 ,从0开始计算

  29. Log.d("meee",getClass()+":\n"+"test:"+index);
  30. /**
  31. * 指定字符在字符串中最后一次出现的位置
  32. * @Param CharSequence 源字符串
  33. * @Param char 被检测的字符
  34. * @Param 开始检测的位置
  35. * @Param 结束检测的位置
  36. * @Return int 位置
  37. */
  38. int lastIndext  = TextUtils.lastIndexOf(str2, 'a');//6
  39. lastIndext = TextUtils.lastIndexOf(str2, 'a',0);
  40. lastIndext = TextUtils.lastIndexOf(str2, 'a',str.length()-1);

  41. String str3="aab";
  42. String str4="aac";
  43. /**
  44. * 判断两个string是否在一定范围内相同
  45. * @Param Charsequence 源字符串1
  46. * @Param int 偏移量
  47. * @Param Charsequence 源字符串2
  48. * @Param int 偏移量
  49. * @Param int 判断的长度范围
  50. */
  51. boolean isMatched = TextUtils.regionMatches(str3, 0, str4, 0, 2);//true

  52. /**
  53. * 截取字符串
  54. * @Param Charsequence
  55. * @Param int 开始的位置
  56. * @Param int 结束的位置
  57. * @Return String
  58. */
  59. String str5="12345";
  60. String substring = TextUtils.substring(str5, 1, 3);//"23"

  61. /**
  62. * 把字符串插入到Object数组中,生成一个拼接字符串
  63. * @Param Charsequence 作为分割的字符串; Iterable 可迭代数据结构,如实现了Collection的数据结构
  64. * @Param Object[] 被分割的数组,底层调用的是toString()
  65. * @Return
  66. */
  67. String[] strs=new String[]{"1","2","3"};
  68. String str6="-";
  69. String join = TextUtils.join(str6,strs);//"1-2-3"

  70. /**
  71. * 以指定字符串将一个字符串分割成String[]
  72. * @Param String 被分割的String
  73. * @Param String 作为分割的标志字符串
  74. * @Return String[]
  75. */
  76. String[] split = TextUtils.split("你好啊", "好");// [你, 啊]

  77. /**
  78. * 把Spanned或SpannedString转换成SpannedString,若传入的Charsequence既不是Spanned也不是SpannedString,则返回其的tostring();
  79. * @Param Charsequence
  80. * @Return Charsequence
  81. */
  82. CharSequence string = TextUtils.stringOrSpannedString("String");

  83. /**
  84. * 返回排除了前后的空字符(判断标准为ascii <32 则视为空)后的字符串的长度
  85. * @Param CharSequence
  86. * @Return int
  87. */
  88. int trimmedLength = TextUtils.getTrimmedLength(" 123 45       ");//6

  89. /**
  90. * 判断两个CharSequence的内容是否相等
  91. * @Charsequence
  92. * @Charsequence
  93. * @Return boolean
  94. */
  95. TextUtils.equals("1","2");

  96. String str7="1234567890";
  97. /**
  98. * 将字符串中指定范围的字符翻转并返回
  99. * @ParamCharsequen
  100. * @Return
  101. */
  102. CharSequence reverse = TextUtils.getReverse(str7, 2, 5);//543


  103. /**
  104. * 将任意一个CharSequence parcel序列化
  105. * @Param Charsequence
  106. * @Param parcel
  107. * @Param int parcelflag
  108. */
  109. //        TextUtils.writeToParcel();

  110. /**
  111. * 返回一个新的字符序列:这个源字符串被目标字符序列组中对应的元素所代替而产生的一个新字符序列。
  112. *  @Param CharSequence,被替换的源字符串
  113. *  @String[] 需要替换的字符串组成的数组
  114. *  @Charsequence[] 替换后的字符串组成的数组
  115. */
  116. CharSequence replace = TextUtils.replace("她说风雨中,这点痛,算什么"
  117. , new String[]{"她", "算什么"}, new String[]{"他", "真特娘的痛啊"});//他说风雨中,这点痛,真特娘的痛啊

  118. /**
  119. * 用 "^数字"做占位符,后接Charsequence的可变数组,最高支持9位,也就是^9,否则报错
  120. * @ParamCharsequence 源字符串,包含
  121. * @Param CharSequence... 替换后的字符串
  122. * @Return Charsequence
  123. */
  124. CharSequence charSequence = TextUtils.expandTemplate("你^1啊,你^2^3啊", "打团", "是不是", "傻");

  125. /**
  126. * 把String的编码转换为符合html的string
  127. * @Param String
  128. * @Return String
  129. */
  130. TextUtils.htmlEncode(charSequence.toString());

  131. /**
  132. * 将多个Charsequence连接起来
  133. * @Param Charsequence...
  134. * @Return Charsequence
  135. */
  136. CharSequence concat = TextUtils.concat("你", "好", "啊");//"你好啊"

  137. /**判断是否Charsequnce中全部字符为可打印对象
  138. * @Param CharSequence ;char
  139. * @Return boolean
  140. *
  141. */
  142. boolean isGraphic = TextUtils.isGraphic("panpanssfsdf");//true

  143. /**
  144. * 判断字符串中只包含数字
  145. * @Param Charsequence
  146. * @Return boolean
  147. */
  148. boolean isDigistOnly = TextUtils.isDigitsOnly("123141241243");
  149. Logger.d(isDigistOnly);

  150. /**
  151. * 判断是否是ascii码,该方法被隐藏
  152. * @Param  char
  153. * @Return
  154. */
  155. //        TextUtils.isPrintableAscii();
  156. /*
  157. public static boolean isPrintableAscii(final char c) {
  158. final int asciiFirst = 0x20;
  159. final int asciiLast = 0x7E;  // included
  160. return (asciiFirst <= c && c <= asciiLast) || c == '\r' || c == '\n';}*/

  161. /**
  162. * 判断是否值包含可打印的ascii嘛,该方法被隐藏
  163. * @Param CharSequence
  164. * @Return boolean
  165. */
  166. //        TextUtils.isPrintableAsciiOnly(CharSequence str);
  167. /*    public static boolean isPrintableAsciiOnly(final CharSequence str) {
  168. final int len = str.length();
  169. for (int i = 0; i < len; i++) {
  170. if (!isPrintableAscii(str.charAt(i))) {
  171. return false;
  172. }
  173. }
  174. return true;}*/
复制代码
分享 转发
TOP
发新话题 回复该主题