我在创建一个数组时遇到了麻烦,该数组会根据用户输入的内容更改数组中的元音。出现的一个问题是,当它要求提供i
字母时,我会收到inputmismatch
。
/******************************************************************************
* This function will prompt the user to replace all vowels in the array
******************************************************************************/
public static void replace( char [] letters )
{
Scanner scan = new Scanner(System.in);
System.out.print(" Enter a character for i: ");
int S = scan.nextInt();
for(int i = 0; i < letters.length; i++)
{
if(letters[i] == 'A' || letters[i] == 'E' || letters[i] == 'I')
{
letters[i]= (char)S;
System.out.print(letters);
}
}
}
答案 0 :(得分:2)
打印数组与打印primitave数据类型不同。你有什么
System.out.print(letters);
你可以通过迭代来打印数组
for(int k =0;k < letters.length;k++){
System.out.println(letters[k]);
}
扫描仪也在向用户询问一个号码,看来你真的希望他们输入一个字母
答案 1 :(得分:1)
要从输入Scanner
中读取单个字符,您只需使用:
char s = scan.next().charAt(0);
或
char s = scan.findInLine(".").charAt(0);
如果你只想消费一个角色。