【发布时间】:2015-01-29 18:04:07
【问题描述】:
如何让这段代码计算每个单词中的元音,而不是将所有元音加起来并显示这些。我写的代码:
import javax.swing.JOptionPane;
import java.util.Arrays;
String[] names = new String[12];
int i;
int j;
j=0;
int vowelCount;
vowelCount=0;
char ch;
names[0] = JOptionPane.showInputDialog("Please enter a name");
names[1] = JOptionPane.showInputDialog("Please enter a name");
names[2] = JOptionPane.showInputDialog("Please enter a name");
names[3] = JOptionPane.showInputDialog("Please enter a name");
names[4] = JOptionPane.showInputDialog("Please enter a name");
names[5] = JOptionPane.showInputDialog("Please enter a name");
names[6] = JOptionPane.showInputDialog("Please enter a name");
names[7] = JOptionPane.showInputDialog("Please enter a name");
names[8] = JOptionPane.showInputDialog("Please enter a name");
names[9] = JOptionPane.showInputDialog("Please enter a name");
names[10] = JOptionPane.showInputDialog("Please enter a name");
names[11] = JOptionPane.showInputDialog("Please enter a name");
Arrays.sort(names);
System.out.println("Name" + " " + "Characters" + " " + "Vowels");
for (i=0; i<12; i++)
{
for(j=0; j<names[i].length(); j++)
{
ch=names[i].charAt(j);
if(ch == 'a' || ch == 'A' || ch == 'e' || ch == 'E' || ch == 'i' ||
ch == 'I' || ch == 'o' || ch == 'O' || ch == 'u' || ch == 'U')
vowelCount ++;
}
System.out.println(names[i] + " " +names[i].length() + " " + vowelCount);
}
我需要代码来接受用户输入的名称(它会这样做),按字母顺序对名称进行排序(它会这样做),计算每个名称中的字符(它会这样做),然后显示每个名称中的元音。
【问题讨论】:
-
您可以将所有元音添加到数组或列表中,然后将名称中的每个字符与存储在元音数组中的每个字符进行比较。 ArrayList 有你可以使用的方法
contains() -
只需在外部循环的开头将
vowelCount重置为0,它将代表每个元音,而不是总和。 -
顺便说一句,您不必编写处理小写和大写字母的代码。你可以例如仅将小写元音存储在 ArrayList 中,然后将名称转换为小写。