Kotlin中的字符串值

Kotlin中的字符串值,kotlin,Kotlin,在Java中,如果我们使用newstring()我们知道它将创建新的字符串对象,并且它将不同于不使用“new”创建的对象(即使内容相同) 在Kotlin中,即使我尝试通过创建StringBuilder来创建字符串,它仍然与不使用字符串(..)创建的字符串相同 如果创建的字符串(StringBuilder(..)将重用相同的字符串值,为什么要给构造函数?它是否做任何增值,寻找这样的用例 谢谢。通过使用=操作符,可以检查字符串之间的结构相等性(它们是否表示相同的字符序列)。上述Kotlin比较代码的

在Java中,如果我们使用
newstring()
我们知道它将创建新的字符串对象,并且它将不同于不使用“new”创建的对象(即使内容相同)

在Kotlin中,即使我尝试通过创建StringBuilder来创建字符串,它仍然与不使用字符串(..)创建的字符串相同

如果创建的
字符串(StringBuilder(..)
将重用相同的字符串值,为什么要给构造函数?它是否做任何增值,寻找这样的用例


谢谢。

通过使用
=
操作符,可以检查字符串之间的结构相等性(它们是否表示相同的字符序列)。上述Kotlin比较代码的Java等价物如下所示:

Object.equals("First", new String(new StringBuilder("First"))); // true
要检查Kotlin中的引用相等性,需要使用
=
运算符


当您使用操作符
==
时,请查看Java中的.

上的Kotlin引用。然而,在科特林,这是结构平等


要在Kotlin中使用引用相等,需要使用
=
运算符


您可以查看此文档页面以了解更多信息:

要使用引用等式,您需要在kotlin中使用===运算符。
在java中==运算符用于引用相等。但在kotlin中,它是结构平等。

在Java中,
==
是引用平等,但在kotlin中,
=
是结构平等。这意味着,在Kotlin
==
string1.equals(string2)
中,两者都做相同的事情。在Kotlin中,我们使用
==
表示引用等式

//Kotlin
println("First" == String(StringBuilder("First"))) //true always
Object.equals("First", new String(new StringBuilder("First"))); // true