什么';Java中string[i]和string.charAt(i)之间的区别是什么?

什么';Java中string[i]和string.charAt(i)之间的区别是什么?,java,string,Java,String,我在写这样一行时遇到了一个错误: String string; if (Character.isLetter(string[i])) {...} Eclipse告诉我表达式的类型必须是数组类型,但它解析为字符串 但是,如果我使用string.charAt(I),它不会引发错误 我的问题是:字符串[i]和Java中的字符串.charAt(i)有什么区别使用其中一个或另一个有什么微妙的方面吗 我试图自己找到一个解决方案,但我只遇到了这个问题的javascript版本。(示例:)在Java中,字符串

我在写这样一行时遇到了一个错误:

String string;
if (Character.isLetter(string[i])) {...}
Eclipse告诉我表达式的类型必须是数组类型,但它解析为字符串

但是,如果我使用
string.charAt(I)
,它不会引发错误

我的问题是:
字符串[i]
Java
中的字符串.charAt(i)有什么区别
使用其中一个或另一个有什么微妙的方面吗


我试图自己找到一个解决方案,但我只遇到了这个问题的
javascript
版本。(示例:)

在Java中,字符串类型与某些语言中的字符数组不同。可以从字符串中获取字符数组,但它们不是同一事物。

在Java中,
String[i]
不是字符串的第i个索引。相反,如果将
string
定义为数组(例如
string[/string=new string[10]
),则
string[i]
将引用数组中的第i个元素。

string[i]是访问字符串数组中第i个元素的方法,请注意,它们在java中是零索引的,就像在javascript中一样

string.charAt(i)是一个特定字符串中的第个字符。这里我又是零索引

人们很容易认为java中的字符串和许多其他语言一样是字符数组,但实际上它们是建立在char数组之上的,char数组是String类的私有成员,如本文所述


使用
[]
操作符访问元素仅适用于阵列<代码>字符串s不是数组。这意味着对
字符串使用
[]
运算符不会编译

如果要将
字符串
转换为
char[]
数组,请使用以下方法


[]
用于引用
数组的
索引。虽然
字符串
通常被认为是
字符
char[]
)的
数组
,但您没有访问字符数组。。。该方法
string.charAt(i)
将访问
数组
以获取物理字符

在此处了解有关字符串类的更多信息:

如果您有如下代码:

String[] stringArray = new String[] { "String 1", "String 2", "String 3", "..." };
你可以做:

for (int i=0; i < stringArray.length; i++) {
    System.out.println("String " + String.valueOf(i) + ": " + String.valueOf(stringArray[i]) + ".");
}
for(int i=0;i

希望有帮助

这可能会帮你解决问题:

public static void main(String[] args) {
  String str = "my name is Muneeb";
  String[] strarray = str.split(" "); //split on white space.

  for(int i=0; i<str.length(); i++){
     System.out.println(str.charAt(i));
  }

  for(int i=0; i<strarray.length; i++){
     System.out.println(strarray[i]);
  }
}
第二个输出将是:

my
name
is
Muneeb

如果字符串是数组,则只有您可以执行字符串[i]。您的问题不清楚。什么是
字符串
?如果它是
String
的实例,那么Java不支持
[i]
。为什么你认为它应该起作用?在Java中,字符串包含字符数组(
char[]
),但它本身不是这样的数组,并且
[index]
只能与数组一起使用。
m
y

n
a
m
e

i
s

M
u
n
e
e
b
my
name
is
Muneeb