J2ME的高手飘进来啊!~~高分!!

来源:百度知道 编辑:UC知道 时间:2024/05/19 20:21:50
public String[] clipString(String str, Font font, int rowMaxW) {
if (str == null)
return null;
if (rowMaxW < font.charWidth('哈'))
rowMaxW = font.charWidth('哈');
int strID = 0;
int rowW = 0;
Vector strManager = new Vector();
char ch = ' ';
while (str.length() > strID) {
ch = str.charAt(strID);
switch (ch) {
case '\n':
strManager.addElement(str.substring(0, strID));
str = str.substring(strID + 1);
rowW = 0;
strID = 0;
break;
case '\t':
StringBuffer sb = new StringBuffer(str);
sb.deleteCharAt(strID);
sb.insert(strID, " ");
str = sb.toString();
break;
default:
if (rowW + font.charWidth(ch) > rowMaxW) {
strManager.addElement(str.substring(0, strID));
str = str.substring(strID);
rowW = 0;

1.以上程序并没有什么错误,可以合理的处理字符串,进行分行
2.'\t'并不等价于空格,'\n'也不是回车。如果要让该函数正常运行,带入的字符串格式必须是:
String str = "哈哈哈\t哈哈哈\n" +
"哈哈\t你是谁啊\t";
这种形式,而不能直接用空格和回车。

有处理转码问题,看到中文,先解决转码再提别的问题!

真高啊,继续飘啊飘儿!!!!