Java: StringBuilder setCharAt 无法正常工作
Java: StringBuilder setCharAt not working properly
所以我正在制作一个程序,其中每个字母的大小写都颠倒了。如果输入 "Hello",它会输出 "hELLO"。我知道无论我在做什么都行不通,但我只是不完全清楚为什么它行不通。
public static void main(String [] args){
Scanner keyboard = new Scanner(System.in);
keyboard.useDelimiter(System.getProperty("line.separator"));
char letter;
char newLetter;
String strLetter;
System.out.print("Phrase: ");
String phrase = keyboard.next();
StringBuilder aWord = new StringBuilder(phrase);
int wordLength = phrase.length();
//loop through each letter
for (int x = 0; x < wordLength; x++) {
letter = phrase.charAt(x);
//if letter is uppercase, set newLetter to lowercase and vice versa.
if (Character.isUpperCase(letter)) {
newLetter = Character.toLowerCase(letter);
} else {
newLetter = Character.toUpperCase(letter);
}
//When I print new letter here, it shows as the updated version
//However, setCharAt is not actually updating, as seen by
//the "System.out.print(phrase);" line outside of the loop.
aWord.setCharAt(x,newLetter);
System.out.print(newLetter);
}
System.out.println();
System.out.print(phrase);
}
它确实有效,但最后您在变量 phrase
中打印原始字符串,您可能想在变量 aWord
.
中打印转换后的字符串
所以我正在制作一个程序,其中每个字母的大小写都颠倒了。如果输入 "Hello",它会输出 "hELLO"。我知道无论我在做什么都行不通,但我只是不完全清楚为什么它行不通。
public static void main(String [] args){
Scanner keyboard = new Scanner(System.in);
keyboard.useDelimiter(System.getProperty("line.separator"));
char letter;
char newLetter;
String strLetter;
System.out.print("Phrase: ");
String phrase = keyboard.next();
StringBuilder aWord = new StringBuilder(phrase);
int wordLength = phrase.length();
//loop through each letter
for (int x = 0; x < wordLength; x++) {
letter = phrase.charAt(x);
//if letter is uppercase, set newLetter to lowercase and vice versa.
if (Character.isUpperCase(letter)) {
newLetter = Character.toLowerCase(letter);
} else {
newLetter = Character.toUpperCase(letter);
}
//When I print new letter here, it shows as the updated version
//However, setCharAt is not actually updating, as seen by
//the "System.out.print(phrase);" line outside of the loop.
aWord.setCharAt(x,newLetter);
System.out.print(newLetter);
}
System.out.println();
System.out.print(phrase);
}
它确实有效,但最后您在变量 phrase
中打印原始字符串,您可能想在变量 aWord
.