Java中“char”和“String”的区别
Posted
技术标签:
【中文标题】Java中“char”和“String”的区别【英文标题】:Difference between "char" and "String" in Java 【发布时间】:2012-05-12 21:20:27 【问题描述】:我正在阅读一本我正在努力学习的 Java 书籍,我有一个问题。我不明白变量类型char
和String
有什么区别。例如,int
和 short
在内存中的字节数和它们拥有的数字区域之间存在差异。
但是char
和String
之间有什么区别?除了 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
。
【讨论】:
您还可以比较 char 和 int :在 ASCII 表编号中为您提供要打印的符号。【参考方案5】:char 只能包含一个字符(字母、数字、...)
char example = 'x';
字符串可以有零个字符或任意多个
String example = "Here you can have anything";
【讨论】:
【参考方案6】:Char 是单个字母,而 String 是字符序列。 Char 是原始数据类型,而 String 是一个类。
【讨论】:
Achar
不包含整个 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 值。希望这有助于深入理解这个概念。
【讨论】:
不,你不能这么说。 Javachar
是 16 位,String
是 char
的集合。 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"); 有啥区别啊?