字符数组和字符串有什么区别?

时间:2009-11-05 13:18:18

标签: string

字符数组和字符串有什么区别?

4 个答案:

答案 0 :(得分:4)

嗯,字符串是一个封装适合字符串的行为的类,例如Substring,Trim等。实际数据在内部存储为字符数组(至少在Java和C#中),因此它们之间存在紧密的联系。他们,但班级本身不仅仅代表人物。

事实上,还有更多内容,例如内化,但这就是它的主旨。

答案 1 :(得分:1)

String是一个字符数组,具有操作数组的便捷方法(搜索,子字符串,模式匹配)。在许多语言(例如Java)中,String是不可变的(就像数字5一样:您可以将它分配给变量,但不能更改数字的值,即5 = 1;不会工作)虽然字符数组就像你可以更改内容的任何其他数组一样(例如,你可以用array[0] = ...替换数组的第一个字符,这是字符串无法实现的)

这允许语言编译器在使用字符串时进行一些优化。例如,当你要求一个子字符串时,你得到一个支持原始字符串的字符数组的引用,而新对象有一些偏移量让你觉得它是一个新的字符串。

答案 2 :(得分:1)

字符数组基本上可用于存储多个字符串,并且可以覆盖此数组(即它是可变的)

另一方面,字符串需要创建一个全新的变量来覆盖数据。

答案 3 :(得分:0)

String是一个类,可以通过正式调用构造函数或直接赋值来创建和初始化对象。

  1. String s = new String("abc");
  2. String s = "sachin";
  3. 尽管字符数组是内存中的连续存储,但字符是按顺序存储的。