【问题标题】:Difference between "char" and "String" in JavaJava中“char”和“String”的区别
【发布时间】:2012-05-12 21:20:27
【问题描述】:

我正在阅读一本我正在努力学习的 Java 书籍,我有一个问题。我不明白变量类型charString 有什么区别。例如,intshort 在内存中的字节数和它们拥有的数字区域之间存在差异。

但是charString 之间有什么区别?除了 char 使用 (') 和 "String" (")。

PS:这是我的第一个“真正的”编程语言。 (在学校,我为了编程课学习了一种假语言。)

【问题讨论】:

标签: java string char


【解决方案1】:

char 是一个字符。 String 是零个或多个字符。

char 是原始类型。 String 是一个类。

char c = 'a';
String s = "Hi!";

注意char 的单引号和String 的双引号。

【讨论】:

  • 一个字符常量有一个等价的整数值,而一个单字符串常量没有一个等价的整数值。
【解决方案2】:

char 表示单个字符。在java中它是UTF-16字符。 String 可以被认为是一个字符数组。

所以,想象一下“Android”字符串。它由'A', 'n', 'd', 'r', 'o', 'i''d' 字符组成。

char是java中的原始类型,String是一个类,封装了chars的数组。

【讨论】:

    【解决方案3】:

    通俗地说,char 是一个字母,而String 是一个字母(或单词)的集合。 '" 的区别很重要,因为 'Test' 在 Java 中是非法的。

    char 是原始类型,String 是类

    【讨论】:

      【解决方案4】:

      char 是原始类型,它可以容纳单个字符。

      String 是一个引用类型,因此是一个成熟的对象。它可以容纳任意数量的字符 (在内部,String 对象将它们保存在 char 数组中)。

      Java 中的原始类型在速度和内存占用方面具有优势。但它们不是真实的对象,因此使用它们可能会丢失一些可能性。它们不能用作泛型类型参数,它们不能有方法或字段,等等。

      但是,每个 Java 原始类型都有一个对应的成熟对象,它们之间的转换是由编译器自动完成的(这称为自动装箱)。

      例如,您可以这样做:

      int i=12;
      Integer l=i;
      

      编译器负责将int 转换为Integer

      【讨论】:

      • 您还可以比较 charint :在 ASCII 表编号中为您提供要打印的符号。
      【解决方案5】:

      char 只能包含一个字符(字母、数字、...)

      char example = 'x';
      

      字符串可以有零个字符或任意多个

      String example = "Here you can have anything";
      

      【讨论】:

        【解决方案6】:

        Char 是单个字母,而 String 是字符序列。 Char 是原始数据类型,而 String 是一个类。

        【讨论】:

        • A char 不包含整个 aphabet。
        【解决方案7】:

        一个字符包含一个字符,而一个字符串包含很多字符。

        【讨论】:

          【解决方案8】:

          char 是原始类型,它可以容纳单个字符。 String 是一个引用类型,因此是一个成熟的对象。

          【讨论】:

            【解决方案9】:

            好吧,char(或其包装类Character)表示单个字符,即您不能写'ab',而String 是由多个字符组成的文本,您可以想到一个string a 一个字符数组(实际上String 类有一个成员char[] value)。

            您可以使用普通的 char 数组,但这很乏味,因此 String 类可以提供一种方便的文本处理方式。

            【讨论】:

              【解决方案10】:

              一个字符只包含一个字母,而一个字符串包含一个完整的单词或多个单词,并在末尾自动插入一个转义序列,以告诉编译器该字符串已在此处结束。(0)

              【讨论】:

              • 一个 char 不包含整个 aphabet。
              【解决方案11】:

              char 由单个字符组成,应用单引号指定。它可以包含字母、数字甚至特殊字符。下面是几个例子:

              char a = '4';
              char b = '$';
              char c = 'B';
              

              字符串定义了可以使用的行,用双引号指定。下面是几个例子:

              String a = "Hello World";
              String b = "1234";
              String c = "%%";
              

              【讨论】:

                【解决方案12】:

                就 ASCII 值而言,您可以说 char 是 0-255 范围内的单个 ASCII 值。而 String 是 ASCII 值的集合。 试试这个代码以更好地学习。

                        char c='a';
                        String s="a b c d e f g hijkl";
                        int i=c;
                        System.out.println(i);
                        for(int count=0;count<s.length();count++){
                            int temp=s.charAt(count);
                            System.out.print(temp+" ");
                        }
                

                输出将是:

                97

                97 32 98 32 99 32 100 32 101 32 102 32 103 32 104 105 106 107 108

                因为 97 是小 'a' 的 ASCII 值。 32 是空格的 ASCII 值。希望这有助于深入理解这个概念。

                【讨论】:

                • 不,你不能这么说。 Java char 是 16 位,Stringchar 的集合。 Java 在内部使用 UTF-16,而不是 ASCII。这是相当基本的。
                【解决方案13】:

                在字符串中我们可以存储多个字符。 例如 char ch='a';

                String s="a";
                

                字符串 s1="aaaa";

                【讨论】:

                  【解决方案14】:

                  字符是您可以输入的任何内容,例如字母、数字、标点符号和空格。字符串出现在变量中。即它们是 perls 中的文本项。一个字符由 16 位组成。而字符串的长度是无限的。

                  【讨论】:

                  • '它们是 perls 中的文本项'在 Java 上下文中要么不正确,要么不相关,要么毫无意义。我无法决定哪个。
                  猜你喜欢
                  • 2011-04-21
                  • 2014-07-14
                  • 2021-04-10
                  • 2020-01-28
                  • 2012-03-16
                  • 2018-12-02
                  • 2010-11-20
                  • 2021-11-09
                  • 1970-01-01
                  相关资源
                  最近更新 更多