我正在做一个函数,我需要获取用户输入并用用户放置的内容替换数组中的所有元音。这是我的阵列:老实说,我不知道我在做什么。
char [] letters = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}
我正在考虑在if
内做一个嵌套的for loop
,但就像我说我不知道我是否朝着正确的方向前进。
/********************************************************************************
This function will prompt the user to replace all vowels in the array
********************************************************************************/
public static void replace( char [] letters ){
for(int i =0; i < letters.length; i++){
if(i >= 'A')
if(i <='Z')
System.out.println(letters[i]);
else
break;
}
}
答案 0 :(得分:0)
除了打印掉所有大写字母外,你的循环看起来不会做太多。您需要一些代码来显示提示并获取用户输入。您还需要一种方法来测试角色是否是元音。做后者的一种方法是:
if ("AEIOU".indexOf(letter) >= 0) {
// letter is a vowel
}
如果您还需要处理小写字母,则可以使用"AEIOUaeiou".indexOf(letter)
或"AEIOU".indexOf(Character.toUpperCase(letter))
。这将嵌套循环隐藏在标准API函数调用中,这使您的代码更易读,更容易调试。 (您可以放心地假设indexOf
写得正确。)
对于用户互动,您应该考虑使用Scanner
包裹System.in
。或者(也许更好),使用Console
来管理所有用户I / O.看看this tutoral,看看你是否可以自己解决问题,如果遇到问题,请发布另一个问题。
答案 1 :(得分:0)
如果我正确解释您的问题,您想要将a,e和i替换为用户输入的其他字符。
if(letters[i] >= 'A') if(letters[i] <= 'Z') System.out.println(letters[i]); else break;
另一件事,如果你想测试它是否是一个元音,你可以像这样将所有的比较结合在一起:
if(letters[i] == 'A' || letters[i] == 'E' || letters[i] == 'I' || letters[i] == 'O' || letters[i] == 'U') letters[i] = users_input
答案 2 :(得分:0)
也许是这样的?
public static void replace( char [] letters )
{
Scanner s = new Scanner(System.in);
for(int i = 0; i < letters.length; i++)
{
if ("AEIOU".indexOf(letters[i]) >= 0)
{
System.out.println("\nVowel Found, What should it be replaced with?");
String line = s.read();
letter[i] = line.charAt(0);
}
}
}
答案 3 :(得分:0)
假设用户输入为b
,您可以实现此目的:
public static char [] replace(char [] src) {
String s = new String(src);
s = s.replaceAll("[aeiouAEIOU]", "b");
return s.toCharArray();
}