58

学習しようとしている Java の本を読んでいて、質問があります。char変数の型との違いがわかりませんStringintたとえば、とshort、メモリのバイト数とそれらが持つ数値の領域には違いがあります。

charしかし、との違いは何Stringですか? ただし、char(') と「文字列」(") を使用します。

PS: これは私の最初の「本物の」プログラミング言語です。(学校では、プログラミングの授業のために偽の言語を学びました。)

4

14 に答える 14

133

char1文字です。String0文字以上です。

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は文字(または単語)のコレクションです。Javaでは違法であるため、'との区別"は重要です。'Test'

charはプリミティブ型でStringあり、クラスです

于 2012-05-03T11:04:37.883 に答える
1

charはプリミティブ型で、1 文字を保持できます。

String代わりに参照型であるため、本格的なオブジェクトです。任意の数の文字を保持できます (内部的に、オブジェクトは文字を配列Stringに保存します)。char

Java のプリミティブ型には、速度とメモリ フットプリントの点で利点があります。しかし、それらは実際のオブジェクトではないため、それらを使用すると失われる可能性がいくつかあります。それらはジェネリック型パラメーターとして使用できず、メソッドやフィールドを持つこともできませんでした。

ただし、すべての Java プリミティブ型には対応する本格的なオブジェクトがあり、それらの間の変換はコンパイラによって自動的に行われます (これはオートボクシングと呼ばれます)。

たとえば、次のことができます。

int i=12;
Integer l=i;

コンパイラは を に変換しintますInteger

于 2012-05-03T11:06:31.957 に答える
0

文字は1つの文字を保持しますが、文字列は多くの文字を保持します。

于 2012-05-03T11:05:02.377 に答える
-1

char は 1 文字で構成され、一重引用符で囲む必要があります。アルファベット、数字、さらには特殊文字を含めることができます。以下にいくつかの例を示します。

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

文字列は、二重引用符で指定された使用できる行を定義します。以下にいくつかの例を示します。

String a = "Hello World";
String b = "1234";
String c = "%%";
于 2016-12-20T13:36:54.947 に答える
-1

まあ、char(またはそのラッパークラスCharacter)は単一の文字を意味します。つまり、書くことはできませんが、は文字数で構成されるテキストで'ab'ありString、文字列を文字の配列と考えることができます(実際、Stringクラスには member がありますchar[] value) .

単純なchar配列を操作することもできますが、それは非常に面倒なので、Stringクラスはテキストを操作するための便利な方法を提供するために存在します。

于 2012-05-03T11:07:21.317 に答える
-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 に答える
-5

文字とは、文字、数字、句読点、スペースなど、入力できるすべてのものです。文字列は変数に表示されます。つまり、perl のテキスト項目です。文字は 16 ビットで構成されます。文字列の長さは無制限ですが。

于 2013-04-26T06:46:25.587 に答える