A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)

例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文


public class Test10 {

               
        public String getString(String st,int k){
                String str=null;
                String st1=null;
                String st2=null;
                //将字符串转换成字符数组
                char[]ch=st.toCharArray();
                for(int i=1;i<ch.length;i++){
                        //将字符指定长度转换成字符串
                        st1=String.valueOf(ch, 0, i);
                        //获取字符串的字节数并与指定字节数相比
                        //如果字符串的字节数与指定字节数相等则返回该字符串
                        if(st1.getBytes().length==k){
                                str=st1;
                                break;
                        }
                        //若小于指定字符窜则在增加一个字符
                        else if(st1.getBytes().length<k){
                                st2=String.valueOf(ch, 0, i+1);
                                //若增加后的字符串与指定字节数相等则返回该字符串
                                if(st2.getBytes().length==k){
                                        str=st2;
                                        break;
                                }
                                //若大于则返回原来的字符串
                                else if(st2.getBytes().length>k){
                                        str=st1;
                                        break;
                                }
                        }
                }
               
               
               
               
                return str;
        }
       
        public static void main(String[] args) {
                // TODO 自动生成的方法存根
                String st="afc我是";
                Test10 t10=new Test10();
                System.out.println(t10.getString(st, 3));
                System.out.println(t10.getString(st, 4));
                System.out.println(t10.getString(st, 5));

        }

}

2 个回复

倒序浏览
哇,帅哥你毕业了吧
回复 使用道具 举报
这是不是基础考试呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马