假如有一字符String s="dfsfs大概的dgf",求他的subString ,但是遇到中文时,不是只显示一半啊(因为中文占两个字符)

解决方案 »

  1.   

    substring跟是否中文没关系,
    另外中文是占两个byte,而不是两个字符
      

  2.   

    String s="dfsfs大概的dgf";
    System.out.println(s.substring(4,6));//显示s大substring(int beginIndex,int endIndex)
    参数:
    beginIndex - 开始处的索引(包括)。
    endIndex - 结束处的索引(不包括)。
      

  3.   

    求它的ASCII码,80-ff是汉字,遇到汉字就截取2个byte,否则截取一个byte.我初学JAVA,不知道JAVA求ASCII码的方法,呵呵
      

  4.   

    /**
       * ÖÐÎÄ×Ö·û´®½ØÈ¡£¬Ó¢ÎÄËã°ë¸ö
       * @param str Ô´×Ö·û´®
       * @param len ½ØÈ¡³¤¶È
       * @return ½á¹û
       */
      public static String substring(String str, int len)
      {
        len = len * 2;
        StringBuffer sb = new StringBuffer();
        int counter = 0;
        for (int i = 0; i < str.length(); i++)
        {
          char c = str.charAt(i);
          if (c < 255)
          {
            counter++;
          }
          else
          {
            counter = counter + 2;
          }
          if (counter > len)
          {
            break;
          }
          sb.append(c);
        }
        return sb.toString();
      }
      

  5.   

    java 中不是规定所有字符包括中文,英文;用unico编码,占用2个 字节吗,你们为什么说英文字符只占一个字节呢?
      

  6.   

    中文是占两个byte,而不是两个字符;
    英文字符只占一个字节.
      

  7.   

    用的是unicode编码...输出很正常
      

  8.   

    jav a中每个char都占两个字节,一个汉字也可以放得下,所以楼主的担心是多于的。