更好的方法来生成字母表中所有字母的数组

Stu*_*Cat 65 java

现在我正在做

for (char c = 'a'; c <= 'z'; c++) {
    alphabet[c - 'a'] = c;
}
Run Code Online (Sandbox Code Playgroud)

但是有更好的方法吗?与Scala相似'a' to 'z'

Hun*_*len 172

我认为这最终会更清洁,你不必处理减法和索引:

char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();
Run Code Online (Sandbox Code Playgroud)

  • 您可以根据需要轻松添加其他字符. (5认同)
  • 嗯,认为可能有一种更清洁的方式来执行此操作,而无需输入所有内容或循环。:(我想我会去的。谢谢! (2认同)

sti*_*ike 30

char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
Run Code Online (Sandbox Code Playgroud)

  • 我其实想要这个!谢谢你帮我复制粘贴:) (12认同)

Bor*_*ris 11

这是一个有趣的unicode解决方案.

char[] alpha = new char[26]
for(int i = 0; i < 26; i++){
    alpha[i] = (char)(97 + i)
}
Run Code Online (Sandbox Code Playgroud)

这会生成一个较低版本的字母表,如果你想要大写,你可以用'65'代替'97'.

希望这可以帮助.

  • `char` 保存一个 UTF-16 单元代码,其中一个或两个组成一个 Unicode 代码点。将其称为 ASCII 会分散人们对这些事实的注意力。 (2认同)

Vah*_*yan 10

将任何语言定义为枚举,并调用getAlphabet();

char[] armenianAlphabet = getAlphabet(LocaleLanguage.ARMENIAN);
char[] russianAlphabet = getAlphabet(LocaleLanguage.RUSSIAN);

// get uppercase alphabet 
char[] currentAlphabet = getAlphabet(true);

System.out.println(armenianAlphabet);
System.out.println(russianAlphabet);
System.out.println(currentAlphabet);
Run Code Online (Sandbox Code Playgroud)

结果

I/System.out:աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆ

I /System.out:абвгдежзийклмнопрстуфхцчшщъыьэюя

I/System.out:ABCDEFGHIJKLMNOPQRSTUVWXYZ

private char[] getAlphabet(){
    return getAlphabet(false);
}

private char[] getAlphabet(boolean flagToUpperCase){
    Locale locale = getResources().getConfiguration().locale;
    LocaleLanguage language = LocaleLanguage.getLocalLanguage(locale);
    return getAlphabet(language, flagToUpperCase);
}

private char[] getAlphabet(LocaleLanguage localeLanguage, boolean flagToUpperCase){
    if (localeLanguage == null)
        localeLanguage = LocaleLanguage.ENGLISH;

    char firstLetter = localeLanguage.getFirstLetter();
    char lastLetter = localeLanguage.getLastLetter();
    int alphabetSize = lastLetter - firstLetter + 1;

    char[] alphabet = new char[alphabetSize];

    for (int index = 0; index < alphabetSize; index++ ){
        alphabet[index] = (char) (index + firstLetter);
    }

    if (flagToUpperCase){
        alphabet = new String(alphabet).toUpperCase().toCharArray();
    }

    return alphabet;
}

private enum LocaleLanguage{
    ARMENIAN(new Locale("hy"), '?', '?'),
    RUSSIAN(new Locale("ru"), '?','?'),
    ENGLISH(new Locale("en"), 'a','z');

    private final Locale mLocale;
    private final char mFirstLetter;
    private final char mLastLetter;

    LocaleLanguage(Locale locale, char firstLetter, char lastLetter) {
        this.mLocale = locale;
        this.mFirstLetter = firstLetter;
        this.mLastLetter = lastLetter;
    }

    public Locale getLocale() {
        return mLocale;
    }

    public char getFirstLetter() {
        return mFirstLetter;
    }

    public char getLastLetter() {
        return mLastLetter;
    }

    public String getDisplayLanguage(){
        return getLocale().getDisplayLanguage();
    }

    public String getDisplayLanguage(LocaleLanguage locale){
        return getLocale().getDisplayLanguage(locale.getLocale());
    }

    @Nullable
    public static LocaleLanguage getLocalLanguage(Locale locale){
        if (locale == null)
            return LocaleLanguage.ENGLISH;

        for (LocaleLanguage localeLanguage : LocaleLanguage.values()){
            if (localeLanguage.getLocale().getLanguage().equals(locale.getLanguage()))
                return localeLanguage;
        }

        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)


Piy*_*iya 9

在具有Stream API的Java 8中,您可以执行此操作。

IntStream.rangeClosed('A', 'Z').mapToObj(var -> (char) var).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您使用的是Java 8

char[] charArray = IntStream.rangeClosed('A', 'Z')
    .mapToObj(c -> "" + (char) c).collect(Collectors.joining()).toCharArray();
Run Code Online (Sandbox Code Playgroud)


小智 6

static String[] AlphabetWithDigits = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
Run Code Online (Sandbox Code Playgroud)