黑马程序员技术交流社区

标题: 关于字符串的一个问题 [打印本页]

作者: java木    时间: 2014-6-3 02:10
标题: 关于字符串的一个问题
我写了一个方法感觉实在是太笨了,希望有大侠能给出简便高效的方法
//编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,
        //如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
        public static void getbyte(String s){
                /*
                 * 把要判断的字符串转换成这种形式:汉字就是--*我。字母仍是字母的形式
                 * 注:字节数只考虑0-9,。
                 */
                StringBuilder sb=new StringBuilder();
                String ziMuJi="qwertyuiopkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
                char ch[]=s.toCharArray();
                for(int i=0;i<ch.length-1;i++){
                        if(!ziMuJi.contains(ch[i]+"")){
                                sb.append('*').append(ch[i]);
                        }
                        else{
                                sb.append(ch[i]);
                        }
                }
                int ByteNo=Integer.parseInt(s.substring(s.length()-1, s.length()))-1;
                //如果字节数索引对应的是*则取0到索引处字串,即舍掉汉字。去除*打印出来
                if(sb.charAt(ByteNo)=='*'){
                                String result=sb.substring(0,ByteNo).replace("*","");
                        System.out.println(result);
                }else{
                        //如果字节数索引对应的不是*则取0到索引处+1字串,即保留汉字。去除*打印出来
                        if(sb.charAt(ByteNo)=='*'){
                        String result=sb.substring(0,ByteNo+1).replace("*","");
                       
                        System.out.println(result);
                }
        }
}




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