public static String subString(String str, int star, int end) {
if (str == null) {
return "";
}
str = str.trim();
StringBuffer r = new StringBuffer();
int l = str.length();
float count = 0;
for (int i = star; i < l; ++i) {
char c = str.charAt(i);
if (c > 255 || c < 0) {
++count;
r.append(c);
}
else {
count += 0.5;
r.append(c);
}
if (count >= end - star) {
break;
}
}
return r.toString();
}
if (str == null) {
return "";
}
str = str.trim();
StringBuffer r = new StringBuffer();
int l = str.length();
float count = 0;
for (int i = star; i < l; ++i) {
char c = str.charAt(i);
if (c > 255 || c < 0) {
++count;
r.append(c);
}
else {
count += 0.5;
r.append(c);
}
if (count >= end - star) {
break;
}
}
return r.toString();
}
int length=0,index=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)>128){
length+=2;
}
else{
length+=1;
}
index=i;
if(length>=len)break;
}
if(length>len)index--;
return s.substring(0,index+1);
}
不会出现截取半个汉字的现象,如:
"我abc".substring(0,4)=="我abc"
"我ABC汉DEF".substring(0,5)=="我ABC汉"
String returnValue = "";
int n = 0;
for(int i = 0;i<inValue.length();i++){
char a = inValue.charAt(i);
byte[] b =String.valueOf(a).getBytes();
if (b.length==2){
n++;
}
returnValue += a;
if (n>=valueLong) break;
n++;
}
return returnValue;
}