黑马程序员技术交流社区

标题: 关于StringBuffer的一个小练习。 [打印本页]

作者: 东邪    时间: 2015-5-29 23:43
标题: 关于StringBuffer的一个小练习。
/**
* @author Dongxie
*                 需求:
*                        给定一个含字母,数字的不规则字符串,在该字符的数字和字母之间
*                        加上下划线
*/
public class Demo1 {
        public static void main(String[] args) {
                //定义字符串
                String s = "ABC123bCa567Qwe23";
                //将字符串转换成StringBuffer类型
                StringBuffer sb = new StringBuffer(s);
               
                //对StringBuffer进行遍历
                for (int i = 0; i < sb.length()-1; i++) {
                        //若相邻的两个字符类型不符合规则,则在它们中间插入下划线
                        if ('a'<=sb.charAt(i) && 'z'>=sb.charAt(i) ||
                                        'A'<=sb.charAt(i) && 'Z'>=sb.charAt(i)) {
                                if ('0'<=sb.charAt(i+1) && '9'>=sb.charAt(i+1)) {
                                        sb.insert(i+1, '_');
                                }
                        }
                        else if ('0'<=sb.charAt(i)&& '9'>=sb.charAt(i)) {
                                if ('a'<=sb.charAt(i+1) && 'z'>=sb.charAt(i+1) ||
                                                'A'<=sb.charAt(i+1) && 'Z'>=sb.charAt(i+1)) {
                                        sb.insert(i+1, '_');
                                }
                        }
                }
                String string = sb.toString();
                System.out.println(string);
        }
}
大家看看有没有还有可以优化的地方。






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