58

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

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

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

4

14 回答 14

133

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

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

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

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

于 2012-05-03T11:05:15.393 回答
22

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

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

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

于 2012-05-03T11:05:10.397 回答
6

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

char是原始类型,String是类

于 2012-05-03T11:04:37.883 回答
1

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

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

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

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

例如,您可以这样做:

int i=12;
Integer l=i;

编译器负责将 转换intInteger.

于 2012-05-03T11:06:31.957 回答
1

char 只有一个字符(字母、数字、...)

char example = 'x';

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

String example = "Here you can have anything";
于 2017-02-16T11:06:01.127 回答
0

char 包含单个字符,而 string 包含许多字符。

于 2012-05-03T11:05:02.377 回答
0

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

于 2014-12-21T14:03:13.990 回答
0

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

于 2020-11-24T19:39:23.787 回答
-1

好吧,char(或其包装类Character)表示单个字符,即您不能编写'ab',而String文本是由多个字符组成的,您可以将字符串视为字符数组(实际上String该类有一个成员char[] value) .

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

于 2012-05-03T11:07:21.317 回答
-1

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

于 2013-09-07T16:28:50.280 回答
-1

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

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

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

String a = "Hello World";
String b = "1234";
String c = "%%";
于 2016-12-20T13:36:54.947 回答
-2

就 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 值。希望这有助于深入理解这个概念。

于 2015-10-09T10:24:20.533 回答
-2

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

String s="a";

字符串 s1="aaaa";

于 2017-09-11T06:55:11.367 回答
-5

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

于 2013-04-26T06:46:25.587 回答