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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 东邪 中级黑马   /  2015-5-29 23:43  /  400 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
* @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);
        }
}
大家看看有没有还有可以优化的地方。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马