C++和Java中的字符串之间的差异
在我可以做这样的事情...C++
String s = "abc";
char c = s[i]; // works fine...
但是在 中,如果我尝试做同样的事情,它会抛出一个错误。为什么?。Java
在,要实现上述目标,我必须做到:java
s.toCharArray();
Strings的实现与Java中的实现有何不同?C++
在我可以做这样的事情...C++
String s = "abc";
char c = s[i]; // works fine...
但是在 中,如果我尝试做同样的事情,它会抛出一个错误。为什么?。Java
在,要实现上述目标,我必须做到:java
s.toCharArray();
Strings的实现与Java中的实现有何不同?C++
在java中,要实现上述目标,我必须做:s.toCharArray();
没有。你可以改用 charAt
:
char c = s.charAt(i);
基本上,C++允许用户定义的运算符 - Java没有。因此,该类不会公开任何类型的“索引”运算符;只存在于数组中,而 a 不是数组。(它通常使用数组实现,但这是另一回事。String
String
编辑:如注释中所述,运算符对于字符串是特殊情况的 - 就在语言规范中。对于 也可以做同样的事情,但事实并非如此 - 并且由于它不在语言规范中,并且Java不支持重载运算符,因此无法在库代码中执行。(例如,不能为任何其他类提供自定义行为。+
[]
+
不同之处在于,C++具有运算符重载,并使用它来访问字符串内容。
它们都以您无法更改它们的方式存储字符串字符。