【问题标题】:Declaration of characters and Strings字符和字符串的声明
【发布时间】:2015-09-01 17:13:51
【问题描述】:

一个字符的声明:

char ch = '';

当我这样做时,我收到错误 'empty character literal'

字符串声明:

String str = "";

我认为对字符串执行此操作没有错误。

问题是,为什么在声明字符串时没有出现类似的错误,或者为什么声明空字符会在传递空字符串时产生这样的错误

【问题讨论】:

  • 一个字符串由零个或多个字符组成。一个纸板箱可以包含零个或多个橙子,并且可以是空的,但没有空橙之类的东西。

标签: java


【解决方案1】:

String 是一组字符和 String str="";不包含字符(读取:空字符串) 但如果你想拥有 Char 变量,它必须有一些价值。 '' 表示没有价值。

【讨论】:

  • 不能为空; char 是一个原语,必须始终有一个值(虽然可以不赋值,但在这种情况下无法访问)
  • @Ratul 没有。 Java 字符串与 C 字符串不同。 Java 字符串可能包含空值(十六进制 00) - 它们的长度在单独的字段中管理,以支持 char[]
  • @RatulSharker in Java end of string 没有用 null (ASCII 0) 字符标记。相反,它被实现为char[] 数组,并且所有数组都有预定义的长度。
【解决方案2】:

String 是 Java 中的一个类,它有自己的语法和方法。它接受双引号中的字符串。字符串实际上是一个字符数组,因此可以发布为空。 另一方面,Char 是一种数据类型,不能不确定。它需要指定NULL。

【讨论】:

    【解决方案3】:

    如果您对与 Java 相关的任何内容有疑问,我建议您通读 Oracle 网站上托管的 Java 教程文档。

    基本上,char 是你放在一个盒子里的东西,而 string 是一个用来容纳所有这些东西的盒子。你可以有一个空盒子,但不是不存在的东西。

    【讨论】:

      【解决方案4】:

      字符串是一个字符数组。通过不传递任何内容,即使其等于"",您基本上可以创建一个空数组,这很好。但是char 是原始类型,因此它不能为“空”。您可以获得的最接近的值是将其设置为等于'\0',即null 字符。

      【讨论】:

        【解决方案5】:

        这里 char 表示引号中字符的 16 位整数值。有关值,请参阅此 table。 “空/无字符”没有表示编号。 如果是字符串,请参考他们的来源code。您可以看到空字符串在内部由 0 大小的 char 数组表示。所以字符串内部没有空/无字符的神奇表示。对于 "" String 类本身不分配任何空间

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-01
          • 1970-01-01
          • 2012-10-22
          相关资源
          最近更新 更多