日期:2014-05-20  浏览次数:20786 次

按字节删除,截取String
Java code

    String s = "abcd";
    byte[] bytes = s.getBytes();
    System.out.println(s.length());
    System.out.println(bytes.length);



输出为
4
4

Java code

    s = "中国";
    bytes = s.getBytes();
    System.out.println(s.length());
    System.out.println(bytes.length);



输出为
2
4
------------------------
无论String的内容是中文还是英文
1).我怎么判断这个String有多少个字节?
2).并且我怎么去删除,截取String中前面4个字节?


------解决方案--------------------
1)就用String.getBytes().length来判断字节长度
但是这个字节与具体编码有关,默认字符编码下,一般是一个汉字三个字节,一个西方1个字节

你第二段代码,确定输出为2 4吗?我怎么应该输出 2 6 
 
------解决方案--------------------
Java code

try {
            String s = "中国";
            System.out.println(s.length());
            System.out.println(s.getBytes().length);
            System.out.println(s.getBytes("GBK").length);
            System.out.println(s.getBytes("UTF-8").length);
            System.out.println(s.getBytes("ISO-8859-1").length);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

------解决方案--------------------
从第一个开始字符开始数,如果大于等于256就是2个字节,否则就是1个字节