字符串中元音的总数

时间:2014-03-03 05:39:50

标签: java string

我收到错误说“表达式的类型必须是数组类型,但它已解析为String”

public class StringWord {
    public static void main(String[] args) {
        String s = new String("Ahmedabad");
        int count = 0;

        System.out.println(s.length());
        for(int i = 0; i < s.length(); i++){
            if(s[i].equals("A")||s[i].equals("a")||s[i].equals("e")||
               s[i].equals("E")||s[i].equals("i")||s[i].equals("I")||
               s[i].equals("o")||s[i].equals("O")||s[i].equals("u")||
               s[i].equals("U"))
            {
                count++;
            }
        }
        System.out.println("Vowels in a string: "+count);
    }
}

6 个答案:

答案 0 :(得分:3)

if(s[i].equals("A")||s[i].equals("a")||s[i].equals("e")||s[i].equals("E")||s[i].equals("i")
            ||s[i].equals("I")||s[i].equals("o")||s[i].equals("O")||s[i].equals("u")||s[i].equals("U"))

equals方法compares两个strings。在这里你要比较角色。

使用s.charAt(i)代替s[i],因为您想要compare两个characters。要使用character index i方法获取charAt(index),可以使用此方法。两个比较使用两个字符== operator

if(s.charAt(i)=='A'||s.charAt(i)=='E'||s.charAt(i)=='I'||s.charAt(i)=='O'||s.charAt(i)=='U')||s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u')

答案 1 :(得分:2)

Strings无法访问

someString[index](此表示法用于数组)。

请改用charAt(index),但请注意charAt()会返回char,因此您必须将其与==进行比较,而不是与equals()进行比较String秒。

您还可以通过以下方式简化:

if ("AaEeIiOoUu".contains(Character.toString(s.charAt(i))) )
{...}

答案 2 :(得分:2)

您的变量sString,但您通过array将其视为s[i]

你应该使用 s.charAt(i) // a method of String class which returns the char at the index i 而不是s[i]

答案 3 :(得分:0)

Java String对象不是字符数组,您不能使用它们的数组语法。相反,您需要使用charAt,它会返回char,而非String,就像您显然期望的那样,并且您需要使用==来比较基元:

if(s.charAt(i) == 'a' || ...)

此外,您可以使用indexOf方法大幅简化if声明:

static final String VOWELS = "aeiouAEIOU";

for(int i = 0; i < s.length(); i++)
    if(VOWELS.indexOf(s.charAt(i)) > -1
        count++;

答案 4 :(得分:0)

是。您在此处使用String s。那里没有index。使用char中的s数组。或者您可以使用s.charAt(index)

答案 5 :(得分:-1)

<强>正确。请不要

您需要将字符串转换为数组。

    s.ToCharArray();

注意:这是c#代码,我不知道它是否与java类似。