Java中“char”和“String”的区别

Posted

技术标签:

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

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

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

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

【问题讨论】:

docs.oracle.com/javase/tutorial/java/nutsandbolts/… @MartinJames - 我想知道你现在是否会对 javascript 做出类似的声明...... 【参考方案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 上下文中要么不正确,要么不相关,要么毫无意义。我无法决定哪个。

以上是关于Java中“char”和“String”的区别的主要内容,如果未能解决你的问题,请参考以下文章

java中定义一个字符串 String st1="student";和String st1=new String("student"); 有啥区别啊?

java中Character和char的区别

想请教一下char 和 string的 区别

Java String与char

java中String的.trim()方法

Java中 String,StringBuffer,StringBuilder之间的区别和常用方法总结