为了账号安全,请及时绑定邮箱和手机立即绑定

替换字母,但不能替换字符串中的特殊字符和大写字母(Java)

替换字母,但不能替换字符串中的特殊字符和大写字母(Java)

浮云间 2021-05-14 14:19:22
我可以将小写字母替换为下一个字母。特殊字符和大写字母不应更改,但我不知道如何更改。/** Return s but with each occurrence of a letter in 'a'..'y' * replaced by the next letter and 'z' replaced by 'a' * * Examples: nextChar("") = "" * nextChar("abcz") = "bcda" * nextChar("1a$b") = "1b$c" * nextChar("AB") = "AB" * nextChar("love") = "mpwf"   */public static String nextLetter(String s) {    // TODO 3    String next = "";    for (char x: s.toCharArray()) {        next += Character.toString((char)(((x - 'a' + 1) % 26) + 'a'));    }    return next;}
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

只需使用if语句检查该字符是否为小写字母,然后将其提升为下一个字母。该Character类型已经有一个Character.isLowerCase()检查字符是否为小写字母的字符。


您还可以进行范围检查,例如if ('a' <= character && character <= 'z')检查字母是否为小写。


当您确定字母为小写字母时,将其提升为下一个字母(还请检查字符是否通过'z',然后将其回滚到'a')并将其附加到结果中。如果不是小写字母,则只需将其附加到结果中即可。


public class MyClass {

    public static void main(String args[]) {

        System.out.println(nextLetter("abcz1a$bABlove"));

    }


    private static String nextLetter(String data) {

        String result = "";

        for (int i = 0; i < data.length(); i++) {

            char character = data.charAt(i);

            if (Character.isLowerCase(character)) {

                character++;

                // Account for rollover on 'z'

                if (character == '{') {

                    character = 'a';

                }

            } 


            result += character;

        }


        return result;

    }

}

结果


bcda1b$cABmpwf


查看完整回答
反对 回复 2021-05-19
?
千巷猫影

TA贡献1829条经验 获得超7个赞

您可以使用if条件来检查字母是否为小写。另外,我使用Java 8 lambda函数来遍历字符串中的字符。


public static String nextLetter(String s) {

    StringBuilder sb = new StringBuilder();


    s.chars().forEach(c -> {

        if (Character.isLowerCase(c)) {

            sb.append((char) (((c - 'a' + 1) % 26) + 'a'));

        } else {

            sb.append((char)c);

        }

    });

    return sb.toString();

}


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信