Java 字符串中元音的总数

Java 字符串中元音的总数,java,string,Java,String,我在说“表达式的类型必须是数组类型,但它已解析为字符串”时出错 公共类StringWord{ 公共静态void main(字符串[]args){ 字符串s=新字符串(“Ahmedabad”); 整数计数=0; System.out.println(s.length()); 对于(int i=0;i

我在说“表达式的类型必须是数组类型,但它已解析为字符串”时出错

公共类StringWord{
公共静态void main(字符串[]args){
字符串s=新字符串(“Ahmedabad”);
整数计数=0;
System.out.println(s.length());
对于(int i=0;i
等于
方法
比较两个
字符串
。在这里,您要比较角色

使用
s.charAt(i)
而不是
s[i]
,因为您想
比较
两个
字符。要获得
字符
,可以使用
索引i
字符(索引)
方法。使用两个比较两个字符
==运算符

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')
等于
方法
比较两个
字符串
。在这里,您要比较角色

使用
s.charAt(i)
而不是
s[i]
,因为您想
比较
两个
字符。要获得
字符
,可以使用
索引i
字符(索引)
方法。使用两个比较两个字符
==运算符

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')

Java
String
对象不是字符数组,不能对它们使用数组语法。相反,您需要使用
charAt
,它返回一个
char
,而不是像您预期的那样返回一个
字符串,并且您需要使用
=
来比较原语:

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++;
static final String元音=“aeiouAEIOU”;
对于(int i=0;i-1
计数++;

Java
String
对象不是字符数组,您不能对它们使用数组语法。相反,您需要使用
charAt
,它返回一个
char
,而不是您显然期望的
字符串
,您需要使用
=
来比较原语:

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++;
static final String元音=“aeiouAEIOU”;
对于(int i=0;i-1
计数++;

是。您在这里使用的是
字符串s
。那里没有
索引
。使用
s
中的
char
数组。或者您可以使用
s.charAt(索引)

是的。您在这里使用的是
字符串s
。那里没有
索引
。使用
字符
数组从
s
。或者您可以使用
字符(索引)

字符串
不能被
某个字符串[索引]
访问(此符号用于数组)

改为使用
charAt(index)
,但请注意
charAt()
返回一个
char
,因此您必须将其与
=
进行比较,而不是与
字符串所使用的
equals()
进行比较

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

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

someString[index]
无法访问
Strings
(此符号用于数组)

改为使用
charAt(index)
,但请注意
charAt()
返回一个
char
,因此您必须将其与
=
进行比较,而不是与
字符串所使用的
equals()
进行比较

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

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

不正确。请忽略

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

    s.ToCharArray();

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

不正确。请忽略

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

    s.ToCharArray();

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

您的变量
s
是一个
字符串
,但您通过执行
s[I]
将其视为一个
数组

你应该使用
s.charAt(i)//字符串类的一种方法,返回索引i处的字符

您的变量
s
不是
s[i]

,而是
String
,但您通过执行
s[i]
将其视为
数组

你应该使用
s.charAt(i)//字符串类的一种方法,返回索引i处的字符

我们知道你的意思,
s[i]

不,
s.charAt(i)='A'
@Rahul,但是如果你明确提到为什么应该使用
charAt()
,并且
[]
不能用于访问
字符串中的字符
@JasonC Ok.。我会的。不,
s.charAt(i)=='A'
@Rahul我们知道你的意思,但是如果你明确提到为什么应该使用
charAt()
,并且
[]
不能用于访问
字符串中的字符
@JasonC好的..我会的。将字符串转换为数组将允许你使用
[]
访问字符,但您不“需要”执行OP试图执行的任务。@Jason好的。谢谢您的澄清。我不熟悉java,所以我不确定我是否正确哈哈。将字符串转换为数组将允许您使用
[]
访问字符,但您不“需要”这样做是为了执行OP试图执行的任务。@Jason好的。谢谢你的澄清。我不熟悉java,所以我不确定我是否正确哈哈。