姿姿霸霸~~!
贵在坚持!
posts - 106,  comments - 50,  trackbacks - 0
/**
     * 按照指定长度将字符串进行分割,中文字符算2个长度
     * 
@param str 字符串
     * 
@param length 指定长度
     * 
@return 如果字符串长度超出指定长度
     * ,则将字符串分成2个部分,分别装在map中
     
*/

    
public static Map getStr(String str, int length) {
        HashMap hashMap 
= new HashMap();
        String addr1 
= "";
        String addr2 
= "";

        
byte tmpBytes[] = str.getBytes();
        
int iByteLen = tmpBytes.length;
        
if (iByteLen > length) {
            
int iLen = 0;
            
for (int i = 0; i < length; i++{
                
if ((tmpBytes[i] & 0xFF> 0x80{
                    iLen 
+= 2;
                    i
++;
                    
continue;
                }
 else {
                    iLen 
+= 1;
                    
continue;
                }

            }


            addr1 
= new String(tmpBytes, 0, iLen);
            addr2 
= new String(tmpBytes, iLen, iByteLen - iLen);
        }
 else {
            addr1 
= str;
        }

        hashMap.put(
new Integer(1), addr1);
        hashMap.put(
new Integer(2), addr2);
        
return hashMap;
    }


0x80等于十进制的128,Turbo C中规定对ASCII码值大于0x80的字符将被认为是负数。
posted on 2009-09-22 22:32 xrzp 阅读(2106) 评论(1)  编辑  收藏 所属分类: JAVA

FeedBack:
# re: 按长度分割字符串,遇到中文的处理
2009-09-22 23:01 | Jcat
好久没更新咯  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(4)

随笔分类

随笔档案

好友的blog

搜索

  •  

积分与排名

  • 积分 - 115113
  • 排名 - 505

最新评论

阅读排行榜

评论排行榜