当前位置: 首页 > 知识库问答 >
问题:

java如何将反转逗号中的任何内容识别为字符串对象?

朱天逸
2023-03-14

如果我写:

String s = new String("abc");

它创建一个值为“abc”的< code>String类型的对象。如果我写:

String s = "abc";

这也创建了一个值为“abc”的对象。如何在不遇到new关键字的情况下创建一个对象。

另外,如果我写:

s.append("def");

它又创建了两个字符串对象,即:

a. "abcdef"  
b. "def"

因此,一旦遇到双引号内的内容,就创建一个新的< code>String对象。这是怎么发生的?

共有3个答案

尹晟
2023-03-14

在Java中,当您执行“hello”时,Java编译器会创建一个类似于newString(“hello)的String对象。此对象保存在字符串池(String#intern())中。

这样做< code>String i = "hello"。它通过检查< code>String#intern()来检查< code>i是否存在于池中。如果是,它重用它,否则它创建一个新的并放入池中。更多信息见此。

戚浩淼
2023-03-14

“abc”是一个字符串文字,由语言规范定义。

参考JLS 3.10.5:

字符串文本由用双引号括起来的零个或多个字符组成。字符可以用转义序列 (§3.10.6) 表示 - 一个转义序列用于 U 0000 到 U FFFF 范围内的字符,两个转义序列用于 U 010000 到 U 10FFFF 范围内的字符的 UTF-16 代理代码单元。

推荐阅读:

  1. 字符串对象和字符串文字之间的区别。
  2. Java弦池

另外,阅读字符串真的很特别:

字符串存储在一个公共池中。这有助于共享具有相同内容的字符串的存储以节省存储。通过new运算符分配的字符串对象存储在堆中,相同的内容不共享存储。

String s1 = "Hello";              // String literal
String s2 = "Hello";              // String literal
String s3 = s1;                   // same reference
String s4 = new String("Hello");  // String object
String s5 = new String("Hello");  // String object
s1 == s1;         // true, same pointer
s1 == s2;         // true, s1 and s1 share storage in common pool
s1 == s3;         // true, s3 is assigned same pointer as s1
s1.equals(s3);    // true, same contents
s1 == s4;         // false, different pointers
s1.equals(s4);    // true, same contents
s4 == s5;         // false, different pointers in heap
s4.equals(s5);    // true, same contents  
潘俊楚
2023-03-14

它被称为字符串文本,在 JLS 3.10.5 中指定:

字符串文本由用双引号括起来的零个或多个字符组成。字符可以用转义序列 (§3.10.6) 表示 - 一个转义序列用于 U 0000 到 U FFFF 范围内的字符,两个转义序列用于 U 010000 到 U 10FFFF 范围内的字符的 UTF-16 代理代码单元。

 类似资料:
  • 问题内容: Java中是否有任何内置方法可以将逗号分隔的String转换为某个容器(例如数组,List或Vector)?还是我需要为此编写自定义代码? 问题答案: 将逗号分隔的字符串转换为列表 上面的代码在定义为的定界符上分割字符串:它将把单词放入列表中,并折叠单词和逗号之间的任何空格。 请注意,这仅返回数组的包装器:例如,你不能从结果中返回结果。对于实际,你必须进一步使用。

  • 添加到StringBuilder中,然后调用reverse()。

  • 本文向大家介绍如何将字符串反转?相关面试题,主要包含被问及如何将字符串反转?时的应答技巧和注意事项,需要的朋友参考一下 使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。 示例代码:  

  • 问题内容: 我有一个逗号分隔的字符串,我想将其转换为数组,因此可以循环遍历它。 有内置的功能吗? 例如,我有这个字符串 现在我想用逗号将其分割,然后将其存储在数组中。 问题答案: MDN参考,主要用于参数可能发生的意外行为。(提示:出来的不是。)

  • 本文向大家介绍在Java中将字符串列表转换为逗号分隔的字符串,包括了在Java中将字符串列表转换为逗号分隔的字符串的使用技巧和注意事项,需要的朋友参考一下 首先,让我们说以下是我们的String列表- 现在,使用String.join()将其转换为逗号分隔的字符串 示例 以下是在Java中将字符串列表转换为逗号分隔的字符串的程序- 输出结果

  • 问题内容: 我有一个返回映射值(字符串)作为通用对象的函数。如何将其转换回字符串。我尝试了toString()但我得到的只是 收货结束 给我一个输出 问题答案: 恐怕您的地图包含物体以外的东西。如果调用String对象,则会获取字符串本身。 得到的结果表明您可能具有String数组。