黑马程序员技术交流社区

标题: 编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表) [打印本页]

作者: 王新年    时间: 2014-1-6 21:33
标题: 编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)
编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(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));

        }

}
作者: kong7906928    时间: 2014-6-27 00:17
哇,帅哥你毕业了吧
作者: 卞新浩    时间: 2014-6-27 21:52
这是不是基础考试呀




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2