我正在尝试使用for循环来检查数组中的每个字符并打印字符,它在数组中的位置,以及它是什么类型的字符(元音,辅音等)。到目前为止我有这个:
char[] myName = new char[] {'J', 'o', 'h', 'n', ' ', 'D', 'o', 'e'};
System.out.print("\nMy name is: ");
for(int index=0; index < myName.length ; index++)
System.out.print(myName[index]);
for(char c : myName) {
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
{
System.out.println("The character located at position is a vowel.");
}
else if (c == 'j' || c == 'h' || c == 'n' || c == 'd')
{
System.out.println("The character located at position is a consonant.");
}
else if (c == ' ')
{
System.out.println("The character located at position is a space.");
}
如何打印字符的位置(即“位于x位置的字符x是元音。”)
答案 0 :(得分:3)
你走在正确的轨道上。您的循环没问题,但如果您实际上需要索引,请尝试使用foreach
语法,如下所示:
char[] myName = new char[] {'J', 'o', 'h', 'n', ' ', 'D', 'o', 'e'};
System.out.print("\nMy name is: ");
for(char c : myName) {
System.out.print(c);
}
现在添加一些逻辑:
int i = 0;
for(char c : myName) {
i++;
// Is the char a vowel?
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
// do something - eg print in uppercase
System.out.print(Character.toUpperCase(c) + " at position " + i);
} else {
// do something else - eg print in lowercase
System.out.print(Character.toLowerCase(c) + " at position " + i);
}
}
你必须弄明白你想做什么。现在去做:)
已编辑:显示位置的使用,这有点笨拙,但代码仍然少于循环标准
答案 1 :(得分:0)
提示:
您应该使用当前使用的for
循环类型。值索引变量将在您的输出中有用。
Character类有许多方法可用于对字符进行分类,以及用于从大写字母转换为小写字母的方法。反之亦然。
您还可以使用==
来测试字符...
您还可以使用switch语句来区分不同类型的字母,然后使用default
分支。
答案 2 :(得分:0)
char[] myName = new char[] {'J', 'o', 'h', 'n', ' ', 'D', 'o', 'e'};
System.out.print("\nMy name is: ");
for(int index=0; index < myName.length ; index++)
char c = myname[index];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
{
System.out.println("The character " + c + "located at position " + index + " is a vowel.");
}
... }