如何计算空格,元音和字符的数量?

时间:2018-09-21 15:08:56

标签: java

import java.util.*;
import java.lang.String;
public class counter
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int space = 0,vowel = 0,chara = 0,i;
        System.out.println(" Enter String ");
        String s =in.nextLine();
        for( i = 0; i < s.length(); i++)
        {
            char ch = in.next().charAt(i);
            if(ch == ' ')
                space++;
            if(ch == 'e' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
                vowel++;
            else
                chara++;
            System.out.println("Number of Vowels = "+vowel);
            System.out.println("Number of Spaces = "+space);
            System.out.println("Number of Char   = "+chara);

        }
    }
}  

出什么问题了?我已经设置了三个柜台。我正在Eclipse中进行编码,每当检查控制台时,我都无法计数字符。它只是接受输入而没有做任何其他事情。

3 个答案:

答案 0 :(得分:2)

删除char ch = in.next().charAt(i);,并将ch的其他实例替换为s.charAt(i)

第一张charAt支票也应该是a,您有两次e

然后将System.out.println...移出循环。

Online Demo

答案 1 :(得分:1)

您应将s = in.next().charAt(i);更改为String s =in.nextLine(),并将System.out.println放在for循环之外。

还有一个双“ e”(在@Ted Hopp的帮助下):

ch == 'e' || ch == 'e'ch == 'e' || ch == 'a'

public static void main(String[] args)
{
    Scanner in = new Scanner(System.in);
    int space = 0,vowel = 0,chara = 0,i;
    System.out.println(" Enter String ");
    String s =in.nextLine();

    for( i = 0; i < s.length(); i++)
    {
        char ch = s.charAt(i);
        if(ch == ' ')
         space++;
        if(ch == 'e' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
            vowel++;
        else
        chara++;


    }
    System.out.println("Number of Vowels = "+vowel);
    System.out.println("Number of Spaces = "+space);
    System.out.println("Number of Char   = "+chara);
}

答案 2 :(得分:1)

只有两个拼写错误。更改代码,

@PersistenceContext

String s = in.nextLine().toLowerCase();

char ch = s.charAt(i);

在您的代码中,您使用小写字母与用户输入进行比较。因此,您应该首先将用户输入转换为小写。您当前的代码将忽略所有大写的元音(E,A,I ...)。使用if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')

通过使用toLowerCase()in.next()正在等待输入。由于您已经使用Scanner进行了输入,因此可以使用它。

下一个显然是印刷错误。元音是A,E,I,O,U。