我正在自學Java並練習使用在線練習。我只學到了直到迄今爲止使用數組進行此練習的方法超出我的範圍,即使在線使用幾個解決方案使用數組來做我想做的事情。Java用字符替換字符
練習是這樣的:讓用戶用元音輸入一個字符串。無論哪裏出現元音字母,都會將該元音顯示爲大寫字母。
例如:如果用戶輸入「蘋果」,正確的輸出是蘋果
我到目前爲止這樣的代碼:
import java.util.Scanner;
public class CapitalizeVowels {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a string ~ ");
String string = keyboard.nextLine();
for (int i = 0; i < string.length(); i++) {
System.out.print(string.charAt(i));
if (string.charAt(i) == 'a' ||
string.charAt(i) == 'e' ||
string.charAt(i) == 'i' ||
string.charAt(i) == 'o' ||
string.charAt(i) == 'u') {
char upperCaseVowel = Character.toUpperCase(string.charAt(i));
System.out.print(upperCaseVowel);
// need to replace string.charAt(i) with upperCaseVowel
// find something to replace characters
}
}
}
}
當我運行我的代碼,因爲它是與輸入字符串「蘋果」,例如,我得到「aAppleEs」作爲我的輸出。正在打印小寫元音和大寫元音。我想我應該用upperCaseVowel來代替string.charAt(i),它是小寫的元音,但是我找不到任何replace()方法或者某種特殊效果。我嘗試了其他的東西,比如StringBuilder等,但是我還沒有遇到一個簡單的解決方案,以避免數組,因爲我還沒有學習它們。任何幫助我如何能得到正確的輸出是高度讚賞。謝謝!
[There's a replace method](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replace%28char,%20char%29)。 – resueman
不要在$ i^{th} $位置打印字符,直到檢查它是否爲元音。 – user2505282