【问题标题】:Point of using char rather than String [closed]使用 char 而不是 String 的要点 [关闭]
【发布时间】:2014-01-19 18:23:24
【问题描述】:

在 Java 中使用 char 有什么意义?

我知道char只能容纳一个字符,而String可以容纳句子,那么char只能容纳一个字符有什么意义呢?字符串也可以容纳一个字符。

我听说例如short可以使用比int少得多的数字,但是它的优点是它使用的内存少得多,charString有类似的东西吗?

【问题讨论】:

  • 字符串是一个字符序列。所以这是使用它们的一个好点,例如当您使用 equals 比较字符串值时。
  • 你真的回答了你自己的问题——为了优化代码,最好使用适用于该特定数据的数据类型——当一个字符时一直使用字符串会是矫枉过正和浪费内存类型会做
  • 谢谢你的回答,我想我现在明白了,可能还需要更多的编程经验:)
  • 另一件事.. 直到最近,您才被允许使用“带有 Switch 语句的字符串”,可以使用 char。而且我也有一种感觉,“C/C++”和其他具有 char 作为数据类型的语言在 java 中“保持它”方面也起着重要作用。

标签: java string char


【解决方案1】:

就像intint[] 一样,Stringchars 的序列。在某些情况下,您只需要一个字符而不是整个序列,在这些情况下您使用char

【讨论】:

    【解决方案2】:

    char 数据类型不能保存“一个字符”,它可以保存一个 16 位无符号整数,该整数可以作为前 65k 组 unicode 字形中的字形进行双重工作。它用于形成字符串(作为char[])并在读取实时用户输入时使用,即用户每次按键时一个字母。不幸的是,这是我们从 unicode 还很年轻的时期继承而来的数据类型,而如今 char 数据类型太小,无法容纳我们确定为单个字母的所有“单字母”,因此 char 将失败有些你想象的东西应该是一个字母,然后事情就会中断,这就是为什么在字符串中有时“真正的字母”的数量和用于编码这些字母的字符/字节的数量是不同的。

    【讨论】:

      【解决方案3】:

      char 是原始数据类型,而 String 是类。如果您只需要存储 1 个字符,则使用 char 总是更好,因为它会消耗更少的内存,也不需要使用 String 来存储 1 个字符,因为每个 String 也有很多与单个字符无关的方法.因此,如果您只需要存储 1 个字符,则使用 char 是更好的选择,原因如下。

      1. String 需要创建一个对象来存储 char,而 char 是原始类型,不会创建此类对象。
      2. 内存更少,处理速度更快。

      此外,char 类型可以与 + 和 - 等算术运算符一起使用。

      所以,当你只需要存储一个字符并且不需要任何String方法时使用char,当需要处理超过1个字符时使用String。

      阅读here了解更多详情

      【讨论】:

        【解决方案4】:

        除了@Ivaylo Strandjev 的回答,值得一提的是char 类型是可变的,而字符串是不可变的。这在某些安全问题中可能很重要(您不希望密码/哈希值永远存在于您的记忆中)。

        【讨论】:

          【解决方案5】:

          如果您的程序中只需要一个字符,最好使用 Char 而不是 String。您可以使用 String,但使用 Char 是最佳实践之一,有助于提高代码的性能。

          【讨论】:

            【解决方案6】:

            Char 是 java 中的 原始数据类型,它只存储 一个字符,而 String 基本上是一个 对象,可以存储一个 字符序列。它们的使用主要取决于它们使用的上下文,并因应用程序的需要而异。

            char[] 也是可变的,其中 String 并不意味着 char 数组中的任何更改都会反映在创建的原始实例中,而对于 String,会创建一个具有修改后更改的新对象。

            还引用@TheLostMind“直到最近,你weren't allowed使用“Strings with Switch statements”,char可以使用。我也有一种感觉,“C/C++”和其他语言都有char作为数据type 在 java 中“保持它”方面也起着重要作用

            您可以通过以下步骤获得更好的想法:

            Characters

            Strings

            也看看这个问题Difference between "char" and "String" in Java

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-04-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-03-05
              • 2021-05-20
              • 1970-01-01
              相关资源
              最近更新 更多