'。'之间的区别和“。”在java中

时间:2009-01-30 20:19:35

标签: java

使用''和“”连接字符串有什么区别吗?

例如,有什么区别:

String s = "hello" + "/" + "world";

String s = "hello" + '/' + "world";

提前致谢。

11 个答案:

答案 0 :(得分:24)

用双引号括起来的文字,例如"foo"字符串,而单引号文字,例如'c'字符。在连接行为方面,没有明显的区别。

尽管如此,值得记住的是,字符串和字符在所有情况下都不可互换,并且您不能使用由多个字符组成的单引号字符串。

答案 1 :(得分:12)

System.out.println('a'+'b'+'c');
> 294
System.out.println("a"+"b"+"c");
> abc

这里发生的是(char)+(char)=(int) 换一种说法。使用“”作为文本以避免意外。

答案 2 :(得分:9)

“”。是一个字符串,'。'是一个char。

答案 3 :(得分:4)

您可以查看JDK: - )

有两个功能:

public static String concatString(String cs) {
    return "hello" + cs + "world";
}

public static String concatChar(char cc) {
    return "hello" + cc + "world";
}

在检查字节码后,它归结为两个AbstractStringBuilder.append(String)AbstractStringBuilder.append(char)

两个方法都会调用AbstractStringBuilder.expandCapacity(int)),它最终会分配一个新的 char [] ,而 System.arraycopy 将首先分配旧内容。

之后AbstractStringBuilder.append(char)只需要将给定的char放在数组中,而AbstractStringBuilder.append(String)必须检查一些约束并调用String.getChars(int, int, char[], int)执行另一个 System.arraycopy 。

答案 4 :(得分:3)

“”。是一个只包含一个字符的字符串。 ''是一个角色。

将它们连接在一起后就没有区别了。

答案 5 :(得分:3)

''用于字符文字。

所以你不能这样做:

“Osc”+'ar'+“Reyes”

因为ar不是字符文字。

在你的例子中,它并没有太大的区别,因为

'/' 

是一个字面值,

 "/" 

是一个只包含一个字符的字符串文字。

此外,您可以使用具有以下语法的任何UTF字符

'\u3c00'

所以你也可以使用:

"Osc" + '\u3c00' + "ar 

答案 6 :(得分:2)

添加char比添加一个字符String快25%。然而,这通常无关紧要,例如

String s = "hello" + "/" + "world";

编译器将其转换为一个String,因此在任何情况下都不会在运行时发生字符串连接/追加。

答案 7 :(得分:1)

理论上,将字符串添加到字符串中更快 - Java 6似乎创建了StringBuffers,我记得在Java性能站点上读取连接字符串会更快。

答案 8 :(得分:1)

您可能会发现以下文章有用:

答案 9 :(得分:0)

char theLetterA ='A'; string myString =“a string”;

答案 10 :(得分:0)

如果您想添加更多字符,则只能在 '' 之间放置一个单个字符

as string 是字符的集合,例如 strong text"hello world"

我们可以使用 '' like- 'h' 'e' 'l' 'l' 'o' ..... 并且每个都必须存储在不同的 char 变量中,这可能非常繁忙 因此,当您要存储多个字符时使用 "" 并使用 '' 来存储单个字符