以前使用TextUtils都只会用isEmpty()和equals()方法,最近接触到它的一些很好用的方法,特此记录一下:
简单使用
String a = "Android";
String b = " Studio";
String c = "012345";
String d = " \n\t \b";
String e = "11-233-we-7d-fv";
String f = "<html>\n<body>\n<h1>My First Heading</h1>\n<p>My first paragraph.</p>\n</body>\n</html>";
Log.e("tag", TextUtils.isEmpty(a) + "");// 字符串是否为null或“”
Log.e("tag", TextUtils.isDigitsOnly(c) + "");// 字符串是否全是数字
Log.e("tag", TextUtils.isGraphic(d) + "");// 字符串是否含有可打印的字符
Log.e("tag", TextUtils.concat(a, b) + "");// 拼接多个字符串
Log.e("tag", TextUtils.getTrimmedLength(b) + "");// 去掉字符串前后两端空格(相当于trim())之后的长度
Log.e("tag", TextUtils.getReverse(b, 0, b.length()) + "");// 在字符串中,start和end之间字符的逆序
List<String> list = new LinkedList<String>();
list.add("I");
list.add("love");
list.add("you");
Log.e("tag", TextUtils.join("-", list));// 在数组中每个元素之间使用“-”来连接
String[] arr = TextUtils.split(e, "-");// 以"-"来分组
for (int i = 0; i < arr.length; i++) {
Log.e("tag", arr[i]);
}
Log.e("tag", TextUtils.htmlEncode(f) + "");// 使用html编码字符串
TextUtils.ellipsize()获取TextView已setMaxLines后,显示出来的字内容
adoptAnswerTv.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
adoptAnswerTv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
int paddingLeft = adoptAnswerTv.getPaddingLeft();
int paddingRight = adoptAnswerTv.getPaddingRight();
int lineWidth = adoptAnswerTv.getWidth() - paddingLeft - paddingRight;
CharSequence ellipsize = TextUtils.ellipsize(answerContent, adoptAnswerTv.getPaint(), lineWidth * expandMaxLines, TextUtils.TruncateAt.END);
if (TextUtils.equals(ellipsize, answerContent)) {
adoptAnswerPackUpTv.setVisibility(View.GONE);
} else {
adoptAnswerPackUpTv.setVisibility(View.VISIBLE);
}
}
});