【问题标题】:Find vowels in each word from a sentence entered by the user (java)从用户输入的句子中查找每个单词中的元音(java)
【发布时间】:2013-04-28 11:00:18
【问题描述】:

我有一个程序提供以下输出:

输入一句话:我是java新手

上午

新的

java

元音数:我是 java 新手 = 6

我的问题是我需要获取用户输入的句子的每个单词中的元音。

例如输出应该是这样的:

输入一句话:我是java新手

我(1)

上午 (1)

新的 (1)

到 (1)

java(2)

元音数:我是 java 新手 = 6

我正在使用 .split() 分隔输入的句子并切换 /.charAT 语句以进行元音检查。

有人可以帮我实现这个结果吗?

【问题讨论】:

  • 你给出了最终输出应该是什么样子,但你还需要详细说明你得到了什么以及你是如何得到它的。
  • 我正在使用以下方式获取用户输入:Scanner input = new Scanner(System.in);串句; System.out.print("请输入一句话:");句子 = input.nextLine(); SentenceSplit(句子); //分割用户输入的方法
  • 别忘了Y,例如“今天的天空很美”。标准元音是 A E I O U 和 Sometimes Y.
  • 看看这里基于字符串的算法问题会对你有很大帮助bekoc.blogspot.com/2012/07/in-this-post-i-try-to-implement.html

标签: java split sentence text-segmentation


【解决方案1】:

整个解决方案只需要几行代码:

for (String word : sentence.split(" +"))
    System.out.println(word + " (" + 
      word.replaceAll("[^aeiouAEIOU]", "")
      .length() + ")");

它的工作方式是调用replaceAll() 删除所有非元音,所以剩下的只有元音,然后你只需取那个只有元音的字符串的长度。

【讨论】:

  • 我已将其更改为使用相同的技术,但显示您询问的内容。立即尝试。
【解决方案2】:

我建议构建一个字符串并遍历每个字符并检查元音。

String test = "I am new to Java";
int vowels = 0;

for (char c: test.toLowerCase().toCharArray()){
    if(c == 'a' || c =='e' || c=='i' || c=='o' || c=='u' ){
        vowels++;
    }
}
System.out.println(test + " Contains: " +vowels +" Vowels");

【讨论】:

    【解决方案3】:
    String n = "I am in Madurai";
    int count = 0;
    char c[] = new char[n.length()];
    n.getChars(0, n.length, c, 0);
    
    for(int i = 0; i < c.length; i++) {
        if (c[i] == 'a' || c[i] == 'e' || c[i] == 'i' || c[i] == 'o' || c[i] == 'u')
            count++;
    }
    System.out.println("Number of vowels in a given sentence: " + count);
    

    输出:

    Number of vowels in a given sentence: 7
    

    【讨论】:

      猜你喜欢
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多