写一个函数,参数为字节数,不能输出一半。
如:“我ABC”, 4 ,输出:我AB
“我ABC汉字”,6 ,输出:我ABC

解决方案 »

  1.   

    Java字符型在所有的JVM中始终都是占两个字节,不用额外判断。
      

  2.   

    public class Test{
    public static void main(String args[])
    {
    Test test =new Test();
    String aaa="我的!aa哎aa%人dd";//测试字符串
    for(int i=0;i<18;i++)
    {
    test.write(aaa,i);
    }
    }

    public void write(String str,int len)//str--原字符串,len--要输出的字节长度
    {
    if(len<=0) 
    {
    System.out.println("");
    return;
    }
    if(len>str.getBytes().length)
    {
    System.out.println(str);//超过字节长度,输出整个原字符串
    return;
    }
    for(int i=0;i<str.length();i++)
    {
    String temp=str.substring(0,i+1);
    int a=temp.length();
    int b=temp.getBytes().length;
    if(a!=b)
    {
    if(len<b) {System.out.println(str.substring(0,a-1));break;}
    if(len==b) {System.out.println(temp);break;}
    }
    else{
    if(len==i+1)
    {
    System.out.println(temp);
    break;
    }
    }
    }
    }
    }
      

  3.   

    Java字符使用是Unicode 字符集
    Unicode 字符 是不定长的是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。