【问题标题】:Counting the vowels in each name, and displaying separately计算每个名称中的元音,并分别显示
【发布时间】: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 中,然后将名称转换为小写。

标签: java arrays count names


【解决方案1】:

保留某种集合,很可能是ArrayList。在计算元音的数量时,将它们添加到列表中。

//declare collection here
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 ++;
        //add ch character to collection
    }
System.out.println(names[i] + "       " +names[i].length() + "             " + vowelCount);
//print vowels in collection

Example use of ArrayList


如果您有兴趣,只是为了提供更多信息,您可以使用许多集合,具体取决于您是否需要值/键对、是否允许重复条目以及是否需要特定顺序。此外,它们的性能会因您使用它们的方式而有所不同。

Comparison Chart between different Collection

【讨论】:

    猜你喜欢
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多