Принудительно использовать stringBuilder в верхнем регистре
Мне было интересно, если есть в любом случае использовать что-то вроде toUpperCase для StringBuilder? Ниже мой код, я пытаюсь взять пользовательский ввод фразы и превратить ее в аббревиатуру. Кто-то помог мне, предложив StringBuilder, но я не могу понять, есть ли способ сделать верхний регистр аббревиатуры. Любая помощь с благодарностью.
public class ThreeLetterAcronym {
public static void main(String[] args) {
String threeWords;
int count = 0;
int MAX = 3;
char c;
//create stringbuilder
StringBuilder acronym = new StringBuilder();
Scanner scan = new Scanner(System.in);
//get user input for phrase
System.out.println("Enter your three words: ");
threeWords = scan.nextLine();
//create an array to split phrase into seperate words.
String[] threeWordsArray = threeWords.split(" ");
//loop through user input and grab first char of each word.
for(String word : threeWordsArray) {
if(count < MAX) {
acronym.append(word.substring(0, 1));
++count;
}//end if
}//end for
System.out.println("The acronym of the three words you entered is: " + acronym);
}//end main
}//end class
2 ответа
Решение
Просто добавьте к нему строки в верхнем регистре:
acronym.append(word.substring(0, 1).toUpperCase())
или поверните строку в верхний регистр, когда получаете строку из StringBuilder:
System.out.println("The acronym of the three words you entered is: " + acronym.toString().toUpperCase());
Просто добавьте верхний регистр String в StringBuilder.
//loop through user input and grab first char of each word.
for(String word : threeWordsArray) {
if(count < MAX) {
acronym.append(word.substring(0, 1).toUpperCase());
++count;
}//end if
}//end for
Или верхний регистр String при получении его из StringBuilder.
System.out.println("The acronym of the three words you entered is: " + acronym.toString().toUpperCase());
Если вам нужна библиотека, взгляните на Apache Common Lang WordUtils, WordUtils.capitalize(str)
,