现在我正在做
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)
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)
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'.
希望这可以帮助.
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)
在具有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)
| 归档时间: |
|
| 查看次数: |
187125 次 |
| 最近记录: |