1

为什么我不能这样做,我怎么能像 CPP 一样?

public static void main(String args[])
{
     String n = "ABCDEFG";
     for(int i=0;i<n.length();i++){
           System.out.println(n[i]);
     }
 }

当我编译时它说“表达式的类型必须是数组类型,但它解析为字符串”。

4

4 回答 4

2

您想使用该charAt函数来访问 a 的字符String。正如 MrSmith42 所提到的,[]在 C++ 中可以重载运算符std::string,但在 Java 中则不行String

System.out.println(n.charAt(i));
于 2013-01-05T15:45:57.070 回答
2

因为String不是数组。

但是,您可以将其转换为char数组并使用这样的 foreach 循环对其进行循环:

for (char c: n.toCharArray())
    System.out.println(c); 
于 2013-01-05T15:46:34.473 回答
2

Java 不允许运算符重载,就像 c++ 一样。因此 [] 运算符不能用于字符串。

    System.out.println(n.charAt(i);
于 2013-01-05T15:46:45.713 回答
1

String对象不支持像 C++ 中那样的运算符重载。你可以使用

System.out.println(n.charAt(i));
于 2013-01-05T15:46:06.207 回答