System.out.print("012字符abcd12345".substring(3,5) +"\n");
它返回"字符"。
但是,我想截取它的第3个字节到第5个字节,即返回一个汉字(二个字节)"字",
怎么做才可以啊?问了好几个人,都回答不上来,想让高手多指教!

解决方案 »

  1.   

    System.out.print("012字符abcd12345".substring(3,4) +"\n");
      

  2.   

    System.out.print("012字符abcd12345".charAt(3) +"\n");
      

  3.   

    JAVA默认是UTF8编码啊,除非你把编码方式给修改了。
      

  4.   

    先转换成一个字节数组,然后再取,
    String s="012字符abcd12345";
    byte[]b = s.getBytes();
    再在b中取你要的不过这样的话,你可能需要根据ascii码判断下是汉字还是英文,以决定将如何取法。
      

  5.   

    我在网上看到下面这篇函数,不过搞不明白"more 后缀字符串"作为输入参数好象没有什么作用。
    大家能否改写一下以下的函数,帮我加输入一个参数,作为截取的起始位置iStart啊?/**
         * 取字符串的前toCount个字符
         *
         * @param str 被处理字符串
         * @param toCount 截取长度
         * @param more 后缀字符串
         * @version 2004.11.24
         * @author zhulx
         * @return String
         */
        public static String substring(String str, int toCount,String more)
        {
          int reInt = 0;
          String reStr = "";
          if (str == null)
            return "";
          char[] tempChar = str.toCharArray();
          for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) {
            String s1 = str.valueOf(tempChar[kk]);
            byte[] b = s1.getBytes();
            reInt += b.length;
            reStr += tempChar[kk];
          }
          if (toCount == reInt || (toCount == reInt - 1))
            reStr += more;
          return reStr;
        } 
      

  6.   

    在string里面有2个方法!
    自己去查帮助文档!
    里面有!
      

  7.   

    有谁能告诉我,more 后缀字符串的作用吗?
      

  8.   

    System.out.print("012字符abcd12345".substring(3,5) +"\n");
    它返回"字符"。
    但是,我想截取它的第3个字节到第5个字节,即返回一个汉字(二个字节)"字",
    怎么做才可以啊?问了好几个人,都回答不上来,想让高手多指教!=======================================================================可能人家回答不上来.是因为你问的有问题.
    首先,subString 的两个参数是int beginIndex, int endIndex
    不是字节.而是字符...
    java是unicode编码方式.一个char16个字节..是能放一个汉字的.这点和C/C++是有区别的.
    String其实就相当于一个字符数组.
      

  9.   

    String s="012字符abcd12345";
    byte[]a = s.getBytes()
    byte[]b = new byte[4];
    for (int i=0;i<4;i++){
       b[i] = a[i+3];
    }
    String subs= new String(b);