如何将字符串中的字母(例如“ Hello”)替换为此处的字母?

String bubbled = "ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ";


我最初只是在执行replaceAll(“ a”,“ⓐ”),但我觉得必须有一种更有效的方法。

最佳答案

您可以使用字符a来确定字母的偏移值。与StringBuilder结合使用,它应该相当有效。当然,对于输入字符串仅是字母字符,您可能必须非常严格。

这是我上面描述的代码:

public class Bubbled {
    public static void main(String[] args) {
        char bubbledA = 'ⓐ';
        int lowerCaseOffset = bubbledA - 'a';
        int upperCaseOffset = bubbledA - 'A';

        String input = "Hello";
        StringBuilder bubbledOutput = new StringBuilder();
        for (Character c : input.toCharArray()) {
            if (Character.isUpperCase(c)) {
                bubbledOutput.append((char)(c + upperCaseOffset));
            } else {
                bubbledOutput.append((char)(c + lowerCaseOffset));
            }
        }

        System.out.println(bubbledOutput.toString());
    }
}


输出量

ⓗⓔⓛⓛⓞ

10-01 06:46
查看更多