android中如果需要将字符在两行TextView中进行显示时字符过长问题?
问题引导:在Android中,使用TextView来显示文字,如果所有文字都在一行显示时,那么当文字过长的时候,
1:如果不加设置则出现的现象是,显示不全;
2:如果设置android:singline = “true”, 则过长时,会自动将文字的后面较长的部分替换为省略号
问题:如果我们需要在两行来显示文字,那么文字过长的时候怎么办?
想法:既然长了就替换啊,省略号搞起。。
publicstaticvoid main(String[] args) {
String str1 = "c"; // 英文字符 1
String str2 = "1"; // 数字 1
String str3 = "你"; // 汉字 1
String str4 = "c1"; // 组合 2
String str5 = ","; // 英文标点 1
String str6 = ","; // 中文标点 1
System.out.println(str1 + " : " + str1.length());
System.out.println(str2 + " : " + str2.length());
System.out.println(str3 + " : " + str3.length());
System.out.println(str4 + " : " + str4.length());
System.out.println(str5 + " : " + str5.length());
System.out.println(str6 + " : " + str6.length());
String str1 = "c"; // 英文字符 1
String str2 = "1"; // 数字 1
String str3 = "你"; // 汉字 1
String str4 = "c1"; // 组合 2
String str5 = ","; // 英文标点 1
String str6 = ","; // 中文标点 1
System.out.println(str1 + " : " + str1.length());
System.out.println(str2 + " : " + str2.length());
System.out.println(str3 + " : " + str3.length());
System.out.println(str4 + " : " + str4.length());
System.out.println(str5 + " : " + str5.length());
System.out.println(str6 + " : " + str6.length());
}
上面是对各种不同类型的字符类型在Java String中的长度测试,结果是所有的类型当个字符都是1。恩,也就是说string.length的结果就是字符个数,这个与字符类型无关。
好像这是常识?然后问题来了,不同的字符在显示的时候占用的空间完全不同,数字偏小,标点的站位更是乱。我们想要知道某个字符串占用了多少空间,直接使用其总长度来估算是不准确的。此时,需要对字符串中各个字符按照数字,英文字符,汉字,标点类型进行分组。
不积跬步无以至千里,不积小流无以成江海。业精于勤而荒于嬉,行成于思而毁于随
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?