字符串转换

题目

变换字符串,使之满足如下要求:
1.将字符串中的多个空格合并为一个空格;
2.将字符串中的每个单词的首字母转换为大写,该单词中的其它字母转换为小写;
3.若字母和数字相邻,则将字母与数字以空格隔开。
例如:
处理前字符串:“nothing23can 13be compared34 with 4 her 99 beauty”
处理后字符串:“Nothing_23_Can 13_Be Compared_34 With 4 Her 99 Beauty”

Java代码实现

    public static void StringProcess(String str) {
        int len = str.length();
        int flag = 0;// 0:前面字符为空格;1:前面字符为数字;2:前面字符为字母
        String res = "";
        for (int i = 0; i < len; i++) {
            char tmp = str.charAt(i);
            if (((tmp >= 'A' && tmp <= 'Z') || (tmp >= 'a' && tmp <= 'z'))) {//如果tmp为字母
                if (flag == 0) //前一个字符为空格
                    res += Character.toString(tmp).toUpperCase();
                else if (flag == 1) //前一个字符为数字
                    res += ("_" + Character.toString(tmp).toUpperCase());
                else //前一个字符为字母
                    res += Character.toString(tmp).toLowerCase();
                flag = 2;
            } else if (tmp == ' ') {//如果tmp为空格(Space)
                if (flag != 0)
                    res += tmp;
                flag = 0;
            } else {// tmp为数字
                if (flag == 2)
                    res += ("_" + Character.toString(tmp));
                else
                    res += tmp;
                flag = 1;
            }
        }
        System.out.println(res);
    }

该解决方法有点笨,不过也算是一种解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值