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

String 字符数组和字符串之间有什么区别?,string,String,字符数组和字符串之间有什么区别?字符串是一个类,它封装了适合字符串的行为,如子字符串、修剪等。实际数据在内部存储为字符数组(至少在Java和C#中),因此它们之间有着密切的联系,但是类本身不仅仅代表字符 事实上,还有更多,比如内部化,但这就是它的要点。字符串是一个类,它封装了适合字符串的行为,如子字符串、修剪等。实际数据在内部存储为字符数组(至少在Java和C#中),因此它们之间有着密切的联系,但是类本身不仅仅代表字符 事实上,它还有更多的功能,比如内部化,但这就是它的要点。字符串是一个字符数组

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

字符串是一个类,它封装了适合字符串的行为,如子字符串、修剪等。实际数据在内部存储为字符数组(至少在Java和C#中),因此它们之间有着密切的联系,但是类本身不仅仅代表字符


事实上,还有更多,比如内部化,但这就是它的要点。

字符串是一个类,它封装了适合字符串的行为,如子字符串、修剪等。实际数据在内部存储为字符数组(至少在Java和C#中),因此它们之间有着密切的联系,但是类本身不仅仅代表字符


事实上,它还有更多的功能,比如内部化,但这就是它的要点。

字符串是一个字符数组,具有操作数组的方便方法(搜索、子字符串、模式匹配)。在许多语言(例如Java)中,字符串是不可变的(就像数字
5
:您可以将其分配给变量,但不能更改数字的值,即
5=1;
将不起作用),而字符数组与任何其他可以更改内容的数组一样(例如,您可以使用
数组[0]=…
替换数组的第一个字符,这在字符串中是不可能的)


这允许语言编译器在处理字符串时进行一些优化。例如,当您请求一个子字符串时,您将获得支持原始字符串的字符数组的引用,并且新对象具有一些偏移量,使您产生一种错觉,认为它是一个新字符串。

字符串是一个方便的字符数组操作数组的方法(搜索、子字符串、模式匹配)。在许多语言中(例如Java),字符串是不可变的(就像数字
5
:您可以将其分配给变量,但不能更改数字的值,即
5=1;
将不起作用)而字符数组与任何其他可以更改内容的数组一样(例如,可以使用
数组[0]=…
替换数组的第一个字符,这在字符串中是不可能的)


这允许语言编译器在处理字符串时进行一些优化。例如,当您请求一个子字符串时,您将获得支持原始字符串的字符数组的引用,并且新对象具有一些偏移量,使您产生一种新字符串的错觉。

string是一个可以创建其对象的类并通过正式调用构造函数或直接赋值进行初始化

  • String s=新字符串(“abc”);
  • String s=“sachin”

  • 而字符数组是内存中的连续存储,字符是按顺序存储的。

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

  • String s=新字符串(“abc”);
  • String s=“sachin”

  • 而字符数组是内存中的连续存储,字符是按顺序存储的。

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


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

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


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

    请以问题的形式陈述您的问题。答案将为您赢得哪种语言和多少分数?Java很可能就是这种语言。请以问题的形式陈述您的问题。答案将为您赢得哪种语言和多少分数?Java气味“您得到了支持原始字符串的字符数组的引用,并且新对象有一些偏移量…”可能正确,也可能不正确,这取决于您使用的语言,有时甚至取决于该语言的运行时和/或版本。例如,原始Visual Basic确实以这种方式共享字符串数据,但VB.NET不以这种方式共享字符串数据。每种方法在不同情况下都是最佳的,因此没有一种方法是“正确的”答案是,尽管现在的大多数新语言实现似乎都选择不共享所描述的字符串数据。语句“您获得了支持原始字符串的字符数组的引用,并且新对象有一些偏移量…”可能正确,也可能不正确,这取决于您使用的语言,有时甚至取决于该语言的运行时和/或版本。例如,原始Visual Basic确实以这种方式共享字符串数据,但VB.NET不以这种方式共享字符串数据。每种方法在不同情况下都是最佳的,因此没有一种方法是“正确的”答案是,尽管看起来今天大多数新的语言实现都选择不共享所描述的字符串数据。