有这样一个文本文件,每条记录都是56,有数字3位,汉字20,数字3。格式如下:
101中华人民共和国      300
102中国人民            510
我用substring(4,20)取第一行的汉字字符串,出现错误:
exception in thread "main" java.lang.StringIndexOutOfBoundsException:
Sting index out of range:20
请问怎样才能取出 中华人民共和国 这个字符串,谢谢!

解决方案 »

  1.   

    String s = "101中华人民共和国      300";
    s.substring(3, s.length()-3);
      

  2.   

    这样:String s = "101中华人民共和国      300定长字符串";
    byte[] bs = s.getBytes("unicode");
    String s1 = new String(bs, 3, 20, "unicode");
      

  3.   

    我试了一下,上一个用unicode取出来的好像不对,
    换成GBK吧。byte[] bs = s.getBytes("GBK");
    new String(bs, 3, 20, "GBK");不过比较奇怪,unicode应该是正确的,GBK在字符串包含非GBK字符时会有错,(比如日文字符)。