新寫的J2ME根據屏幕大小分割字符串,同時支持中英文
public Vector ParseStr(String str){
str = str.trim(); // 去除空格
if (str == "") {
return null;
}
char parseChar = '\n';
int fontScreen = SCREENWIDTH - 20;
int prevSign = 0;
int strSign = 0;
boolean isLetter = false;
Vector v = new Vector();
for(int i = 0; i < str.length();i++){
char currChar = str.charAt(i);
isLetter = (int)currChar < 255; // 判斷是否為字母
boolean isNewline = currChar == parseChar;
if ((currChar == ' ' && isLetter) || isNewline || !isLetter){ // 記錄前一個空格,並將空格檢查設置為真
prevSign = i;
}
if (i < str.length() - 1){ // 判斷是否為最後一個字母
if (font.stringWidth(str.substring(strSign,i + 1)) > fontScreen || isNewline){ // 如果超出規定寬度或遇換行符則進行換行
v.addElement(str.substring(strSign,prevSign)); // 將換行字符串存入Vector中
strSign = isLetter?prevSign + 1:prevSign; // 記錄當前換行位置,如果是字母字符串尾部就將空格位置除去
}
}
else{
v.addElement(str.substring(strSign,str.length()));
}
}
return v;
}