怎么将字节数组的内容分割成字符串数组

如题所述

第1个回答  2020-01-10
用0xff0xff作为分割符,分割后放在字符串数组中例如:str[0]="123"str[1]="456"str[2]="789"
------解决方案--------------------------------------------------------
需求:实现长文字的滚动停留,所以需要将长字符串截取成指定TextView长度的字符串数组,然后使用ViewFilpper实现。
分割代码如下:/*
*根据要求分割字符串*/
publicstaticString[]getLineStrs(Stringcontent,Paintpaint,floatwidth,floattextSize){
paint.setTextSize(textSize);//Note1:测量的工具首先需要定义单位
intindex=0;
intstart=0;intend=0;
floattextLength=paint.measureText(content);
intlineNum=(int)Math.ceil(1.5*textLength/width);//Note2:计算行数因为判断的不准确,所以增加余量1.5倍,最后处理
String[]mSplitTextParts=newString[lineNum];
for(inti=0;i<=content.length();i++){end=i;
floatmeasureLength=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);
returnArrays.copyOf(mSplitTextParts,index);//Note5:因为行数判断的不准确,所以需要清除掉未赋值的null值字符串}}
returnnull;
猜测分割不准的原因是:中英文混杂。可能是半角全角的问题。
测试后发现:
1,全英文状态下,半角全角计算的标准行数(未经过1.5倍的余量修正)都ok。
2,全中文状态下,半角全角计算的标准行数(未经过1.5倍的余量修正)都ok。
3,在中英文混杂状态下,计算的标准行数比实际截取的行数要大。在这里存疑。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网