public class StringUtils {
public static void main(String[] args) {
String or = "test";
System.out.println(getSubString(or,10));
String or2 = "aa我a谇";
System.out.println(getSubString(or2,6));
}
public static String getSubString(String original, int len){
char[] temp = original.toCharArray();
int realLength = 0;
for(char c : temp){
if(isChineseChar(c))
realLength +=2;
else
realLength ++;
}
int count = 0;
StringBuffer sb = new StringBuffer();
for(int i=0;i<realLength && i<original.length();i++){
if(isChineseChar(temp[i])){
count +=2;
}else
count ++;
if(count>len)
break;
sb.append(String.valueOf(temp[i]));
}
return sb.toString();
}
public static boolean isChineseChar(char c){
if((int)c>255)
return true;
return false;
}
}
再优化一下,把两个for循环合并成一个
public static String getSubString(String original, int len){
int realLen = 0;
StringBuffer sb = new StringBuffer();
for(char c : original.toCharArray()){
if(isChineseChar(c))
realLen+=2;
else
realLen++;
if(realLen>len)
break;
sb.append(String.valueOf(c));
}
return sb.toString();
}
本文详细介绍了如何优化字符串处理方法,通过改进字符计数逻辑和子串获取流程,提高程序效率。特别关注了中文字符的特殊处理方式,以及将双循环合并为单循环的方法,实现更简洁高效的代码实现。

1761

被折叠的 条评论
为什么被折叠?



