quelle est la valeur par défaut de char?


89
char c = '\u0000';

Lorsque j'imprime c, il affiche «a» dans la fenêtre de ligne de commande.

Alors, quelle est la valeur par défaut d'un champ de type char?

Quelqu'un a dit '\ u0000' signifie null en Unicode; Est-ce correct?


vous pouvez vérifier si votre caractère a la valeur par défaut par:char == 0
ACV

Réponses:


105

La valeur par défaut d'un charattribut est en effet '\u0000'(le caractère nul) comme indiqué dans la spécification du langage Java, section §4.12.5 Valeurs initiales des variables .

Dans mon système, la ligne System.out.println('\u0000');imprime un petit carré, ce qui signifie que ce n'est pas un caractère imprimable - comme prévu.


26
Il est important de noter que ce '\u0000'n'est pas la même valeur que null
Edd

C'est quoi null character? Certaines réponses à ces questions font référence à la valeur par défaut comme un caractère nul.
Quazi Irfan

3
@ Óscar López, qu'en est-il du caractère «\ 0»? Ils ne sont pas les mêmes ?
Tarik le

5
@Tarik oui, ce sont les mêmes.
Óscar López

3
@iamcreasy ce que vous dites est correct. Ma note est juste que «caractère nul» est un caractère. Il n'est pas nullen termes de java -à- dire \u0000 == nullretourneraientfalse
Edd

30

'\ u0000' est la valeur par défaut d'un caractère. Son équivalent décimal est 0.

Lorsque vous déclarez une variable char sans l'initialiser, '\ u0000' lui sera assigné par défaut.

voir ce code

public class Test {
    char c;

    public static void main(String args[]) throws Exception {
        Test t = new Test();
        char c1 = '\u0000';
        System.out.println(t.c);
        System.out.println(c1);
        System.out.println(t.c == c1);
    }
}

Ce code imprimera vrai pour la dernière impression.


9

La valeur par défaut de Character est Character.MIN_VALUE qui est représenté en interne parMIN_VALUE = '\u0000'

En outre, vous pouvez vérifier si le champ de caractère contient la valeur par défaut comme

Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{

}

7

'\u0000'signifie null. Donc, si vous imprimez une variable char non initialisée, vous n'obtiendrez rien.


2
En fait, vous obtiendrez une erreur de compilation;) '\ u0000' est la valeur par défaut avec laquelle un champ de caractère est 'initialisé'
Edd

1
Vous n'obtiendrez rien. Vous obtiendrez un espace blanc ou un carré.
Roshana Pitigala

J'ai un "0" si je mets à la fois c et c1 comme '\ u0000' System.out.println (c + c1);
alan le


0

Le caractère par défaut est le caractère avec une valeur int de 0 (zéro).

char NULLCHAR = (char) 0;

char NULLCHAR = '\ 0';


0

c'est tentant de dire comme espace blanc ou entier 0 selon la preuve ci-dessous

char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);

mais je ne le dirais pas parce que cela pourrait différer de différentes plates-formes ou à l'avenir. Ce qui m'importe vraiment, c'est que je n'utiliserai jamais cette valeur par défaut, donc avant d'utiliser un caractère, vérifiez simplement qu'il est \ u0000 ou non, puis utilisez-le pour éviter les idées fausses dans les programmes. C'est aussi simple que ça.


0

La valeur par défaut d'un type de données char est '\ u0000' (ou 0) et une valeur maximale de '\ uffff' (ou 65 535 inclus).

Vous pouvez voir les informations ici .


2
La question a déjà une réponse acceptée ainsi que plusieurs autres réponses. Pour que votre réponse soit utile, elle doit ajouter de nouvelles informations utiles ou de nouvelles perspectives au problème. Répéter simplement les informations dans d'autres réponses n'est pas utile.
AdrianHHH

0

Notez qu'il existe une différence distincte entre null et zéro. Dans http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (référencé ci-dessus), la déclaration est faite: -

Il existe également un littéral nul spécial qui peut être utilisé comme valeur pour tout type de référence. null peut être assigné à n'importe quelle variable, à l'exception des variables de types primitifs. Vous ne pouvez pas faire grand-chose avec une valeur nulle au-delà de tester sa présence. Par conséquent, null est souvent utilisé dans les programmes comme marqueur pour indiquer qu'un objet n'est pas disponible.

C'est pourquoi les déclarations suivantes vous donneront une erreur et pas l'autre: -

char a = nul; // Incompatibilité de type: impossible de convertir de null en caractère.

char b = 0; // Syntaxe valide.


0

\u0000 est la valeur par défaut du type char en Java

Comme d'autres l'ont mentionné, vous pouvez utiliser la comparaison pour vérifier la valeur d'une variable non initialisée.

char ch;
if(ch==0)
    System.out.println("Default value is the null character");

-1

Je pense que c'est '\u00000'ou juste ''plutôt que '\u0000' (Le premier a 5 zéros tandis que le dernier a quatre zéros.)


@ JohannesH.- cela me semble être une réponse. Marquer cela comme «pas une réponse» n'est pas correct IMO.
Krease le

-1

La valeur par défaut de charest \ u0000

public class DefaultValues {
char varChar;
public static void main(String...l)
 {
    DefaultValues ob =new DefaultValues();
    System.out.println(ob.varChar=='\u0000');
 }  
}

Cela reviendra vrai


-1

La valeur par défaut de char est null qui est «\ u0000» selon le graphique Unicode . Voyons comment cela fonctionne lors de l'impression.

public class Test_Class {   
     char c;
     void printAll() {  
       System.out.println("c = " + c);
    }   
    public static void main(String[] args) {    
    Test_Class f = new Test_Class();    
    f.printAll();   
    } }

Remarque: la sortie est vide.


-2

La valeur par défaut d'un type primitif char est '\ u0000' (caractère nul) comme indiqué dans la spécification du langage Java.

Le raccourci pour 'u0000' est '\ 0', donc la valeur null peut être représentée soit par 'u0000' ou '\ 0'.

Le programme Java ci-dessous valide les représentations nulles à l'aide du champ de caractères d'instance «c».

public class DefaultValueForchar {  
    char c;
    public static void main(String[] args) {
        char c0 = '\0';
        char cu0000 = '\u0000';
        DefaultValueForchar obj = new DefaultValueForchar();
        System.out.println(obj.c);
        System.out.println(c0);
        System.out.println(cu0000);
        System.out.println(c0==cu0000);
        System.out.println(obj.c==c0);
        System.out.println(obj.c==cu0000);
    }

}

production:

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.