0

我无法创建一个数组,该数组将使用用户输入的内容更改数组中的元音。出现的一个问题是,当它要求我提供信件时,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);
        }
    }
}
4

2 回答 2

2

打印数组与打印原始数据类型不同。你有什么

System.out.print(letters);

您可以通过遍历它来打印数组

for(int k =0;k < letters.length;k++){   
    System.out.println(letters[k]);
}

扫描仪还要求用户输入一个数字,看来您真的希望他们输入一个字母

于 2012-10-30T22:49:30.163 回答
1

要从输入中读取单个字符,Scanner您可以简单地使用:

char s = scan.next().charAt(0);

或者

char s = scan.findInLine(".").charAt(0);

如果您只想消耗一个字符。

于 2012-10-30T22:49:32.363 回答