Java 我能';t获取要与每个字符一起显示的字符串

Java 我能';t获取要与每个字符一起显示的字符串,java,string,Java,String,为什么我不能这样做,我怎么能像CPP一样呢 public static void main(String args[]) { String n = "ABCDEFG"; for(int i=0;i<n.length();i++){ System.out.println(n[i]); } } publicstaticvoidmain(字符串参数[]) { 字符串n=“ABCDEFG”; 对于(int i=0;i您希望使用函数访问字符串的

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

public static void main(String args[])
{
     String n = "ABCDEFG";
     for(int i=0;i<n.length();i++){
           System.out.println(n[i]);
     }
 }
publicstaticvoidmain(字符串参数[])
{
字符串n=“ABCDEFG”;
对于(int i=0;i您希望使用函数访问
字符串的字符
。正如MrSmith42所提到的,在C++的
std::String
中可以重载
[]
运算符,但在Java
String
中则不行

System.out.println(n.charAt(i));
您希望使用该函数访问
字符串的字符
。正如MrSmith42所提到的,在C++的
std::String
中可以重载
[]
运算符,但在Java
字符串
中则不能

System.out.println(n.charAt(i));

<>代码> String < /Cord>对象不支持像C++那样的操作符重载。可以使用< /P>
System.out.println(n.charAt(i));

<>代码> String < /Cord>对象不支持像C++那样的操作符重载。可以使用< /P>
System.out.println(n.charAt(i));

因为
String
不是数组

但是,您可以将其转换为
char
数组,并使用如下foreach循环在其上循环:

for (char c: n.toCharArray())
    System.out.println(c); 

因为
String
不是数组

但是,您可以将其转换为
char
数组,并使用如下foreach循环在其上循环:

for (char c: n.toCharArray())
    System.out.println(c); 

java不允许操作符重载,如C++那样。因此[]]运算符不能用于字符串。

    System.out.println(n.charAt(i);

java不允许操作符重载,如C++那样。因此[]]运算符不能用于字符串。

    System.out.println(n.charAt(i);


char[]chars=n.toCharArray()
@Shivam Kalla。如果不需要,请不要转换为字符数组。@AlexanderPogrebnyak为什么不呢?他可以使用索引使用字符数组进行简单的迭代。@Shivam Karla。因为当您将字符串转换为字符数组时,内存占用会增加一倍。简单通常是有效的,但并不总是有效的。@AlexanderPogrebnyakn!
char[]chars=n.toCharArray()
@Shivam Kalla。如果不需要,请不要转换为字符数组。@AlexanderPogrebnyak为什么不呢?他可以使用索引使用字符数组进行简单的迭代。@Shivam Karla。因为当您将字符串转换为字符数组时,内存占用会增加一倍。简单通常是有效的,但并不总是有效的。@AlexanderPogrebnyakn!Undid-1,似乎有点苛刻。很高兴提及将字符串转换为字符数组的可能性,但是对于OP的问题来说,这似乎是一个杀伤力过大的问题。@Alexander Pogrebnyak:这可能有点“杀伤力过大”,但也可能比调用
charAt(..)更快
中的每个字符String@MrSmith42.如果您认为迭代器正在做一些不同的事情,但是在数组的副本上,您会感到失望。@AlexanderPogrebnyak我想我太习惯于使用
CharBuffer
s:punded-1,这似乎有些苛刻。不过,最好提一下将字符串转换为char数组的可能性对于OP的问题来说,这似乎有点过火了。@Alexander Pogrebnyak:这可能有点“过火”,但也可能比调用
charAt(…)更快
中的每个字符String@MrSmith42.如果您认为迭代器正在做一些不同的事情,但是在数组的副本上,您会感到失望。@AlexanderPogrebnyak我想我太习惯于使用
CharBuffer
s:p了