String str = "我的A";
System.out.println(str.lenth());结果得到是3,我想得到是5,即中文字符占两个长度单位,要怎么做?谢谢~

解决方案 »

  1.   


    String str = "你好a";
    String reg = "[\\u4e00-\\u9fa5]";
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(str);
    int a = 0;
    while(m.find())//不清楚有没有直接得到匹配结果数的函数...
    a++;

    System.out.print(str.length()+a);
      

  2.   

    System.out.println(str.getBytes().length);
      

  3.   

    public int ReturnNum(String str)
    {

    return str.getBytes().length;
    }
      

  4.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;class Test1{
    public static void main(String[] args){
    String str = "我的A"; 
    System.out.println(str.length()); 
    //String str = "你好a";
    String reg = "[\\u4e00-\\u9fa5]";
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(str);
    int a = 0;
    while(m.find())//不清楚有没有直接得到匹配结果数的函数...
         a++;
            
    System.out.print(str.length()+a); }}运行结果
    3
    5我是在Eclipse环境下运行,注意所在的包
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;