黑马程序员技术交流社区

标题: (看看我的代码)编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文 [打印本页]

作者: hrfhwy    时间: 2015-11-23 20:21
标题: (看看我的代码)编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文
class Test10 {  
          
    public static void main(String[] args) {  
      
        String s1 = "HM程序员";  
  //调用函数,测试结果
        splitString(s1, 3);  
        splitString(s1, 4);  
        splitString(s1, 5);
        splitString(s1, 6);
        
    }  
  //定义一个函数,能实现从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)
    public static void splitString(String src, int len) {  
      //定义一个数组bt从0角标到len-1中负数出现的个数
        int count=0;
      
  //如果字符串输出为空,输出输入为空
        if (null == src)  
            System.out.println("输入为空");  
           
         
  
      
        byte bt[] = src.getBytes(); // 将String转换成byte字节数组  
                int x=bt.length;//数组by的长度
        //如果截取的字节数大于bt的字节,输出为bt的最大字节       
        if (len > x)   
            len = x;  
          //判断截取字节的最后一位的值
        if (bt[len-1]> 0) {  
                //截取想要的字节
            String subStrx = new String(bt, 0, len);  
            System.out.println("subStrx==" + subStrx); }
            else  
            {
                    //如果截取的最后一个字节小于零,循环字节。并读取角标从零到len-1的负数个数
                     for (int y=0;y<len;y++)
                 {
                         if (bt[y]<0)
                                 count++;
                 }
               //如果截取字节数为偶数,打印输出结果
                if(count%2==0)
                {
                        String subStrx = new String(bt, 0, len);  
                    System.out.println("subStrx==" + subStrx);
                }
                //如果字节数为奇数打印输出结果
                else
                {
                        String subStrx = new String(bt, 0, len-1);  
                    System.out.println("subStrx==" + subStrx);
                }
            }
  
        
        
    }  
  
}  
作者: geqiandesiyu    时间: 2015-11-23 21:41
0...0//\\0..0




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2