如何将字节数组的内容分割成字符串数组?

SSSSSSSddfe3f3r3 2013-02-15 06:11:26


例如 有 字节数组内容是 : 123 0xff0xff 456 oxffoxff 789

用 0xff0xff 作为 分割符 ,分割后放在字符串数组中 例如 : str[0]="123" str[1]="456" str[2]="789"

...全文
283 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
胡耀文 2013-02-15
  • 打赏
  • 举报
回复
需求:实现长文字的滚动停留,所以需要将长字符串截取成指定TextView长度的字符串数组 ,然后使用ViewFilpper实现。 分割代码如下: /* * 根据要求分割字符串 */ public static String[] getLineStrs(String content, Paint paint, float width, float textSize) { paint.setTextSize(textSize);//Note1:测量的工具首先需要定义单位 int index = 0; int start = 0; int end = 0; float textLength = paint.measureText(content); int lineNum = (int) Math.ceil(1.5*textLength / width) ;//Note2:计算行数因为判断的不准确,所以增加余量1.5倍,最后处理 String[] mSplitTextParts = new String[lineNum]; for (int i = 0; i <= content.length(); i++) { end = i; float measureLength = paint.measureText(content, start, end);//Note3:[start,end)范围的字符串 if (measureLength >= width) { mSplitTextParts[index] = content.substring(start, end);//Note4:[start,end)范围的字符串 start = end; index++; } if (end == content.length()) { mSplitTextParts[index] = content.substring(start, end); return Arrays.copyOf(mSplitTextParts, index);//Note5:因为行数判断的不准确,所以需要清除掉未赋值的null值字符串 } } return null; 猜测分割不准的原因是:中英文混杂。可能是半角全角的问题。 测试后发现: 1, 全英文状态下,半角全角计算的标准行数(未经过1.5倍的余量修正)都ok。 2, 全中文状态下,半角全角计算的标准行数(未经过1.5倍的余量修正)都ok。 3, 在中英文混杂状态下,计算的标准行数比实际截取的行数要大。在这里存疑。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧