【发布时间】:2016-03-27 01:17:17
【问题描述】:
我正在自学 Java,并使用在线练习进行练习。到目前为止,我只学到了一些方法,所以在这个练习中使用数组超出了我的范围,尽管网上有几个解决方案使用数组来做我想做的事。
练习是这样的:让用户输入带有元音的字符串。只要有元音字母,就将该元音显示为大写字母。
例子:如果用户输入“apples”,正确的输出是AppleEs
到目前为止我有这个代码:
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
}
}
}
}
例如,当我使用输入字符串“apples”按原样运行代码时,我得到“aAppleEs”作为输出。正在打印小写元音和大写元音。我在想我应该用 upperCaseVowel 替换 string.charAt(i) ,它是小写元音,但我找不到任何 replace() 方法或对字符有这种效果的东西。我尝试了其他的东西,比如 StringBuilder 等,但我还没有遇到一个足够简单的解决方案来避免数组,因为我还没有学习它们。非常感谢任何有关如何获得正确输出的帮助。谢谢!
【问题讨论】:
-
在检查它是否是元音之前,不要打印$i^{th}$位置的字符。
标签: java replace character capitalization