você pode verificar se seu char tem o valor padrão por:char == 0
ACV
Respostas:
105
O valor padrão de um charatributo é de fato '\u0000'(o caractere nulo) conforme declarado na Especificação da linguagem Java, seção §4.12.5 Valores iniciais das variáveis .
No meu sistema, a linha System.out.println('\u0000');imprime um pequeno quadrado, o que significa que não é um caractere imprimível - como esperado.
É importante observar que '\u0000'não é o mesmo valor que null
Edd
O que é null character? Algumas respostas a essas perguntas referem-se ao valor padrão como caractere nulo.
Quazi Irfan
3
@ Óscar López, E o char '\ 0'? Eles não são os mesmos ?
Tarik
5
@Tarik sim, eles são iguais.
Óscar López
3
@iamcreasy o que você diz está correto. Minha observação é apenas que 'caractere nulo' é um caractere. Não está nullem termos de java, ou seja \u0000 == null, retornariafalse
Edd
30
'\ u0000' é o valor padrão para um caractere. Seu equivalente decimal é 0.
Quando você está declarando alguma variável char sem inicializá-la, '\ u0000' será atribuído a ela por padrão.
veja este código
publicclassTest{
char c;
publicstaticvoidmain(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);
}
}
Este código imprimirá verdadeiro para a última impressão.
mas eu não diria isso porque, pode diferir em diferentes plataformas ou no futuro. O que realmente me importa é nunca usar esse valor padrão, então antes de usar qualquer caractere, verifique se ele é \ u0000 ou não, e use-o para evitar mal-entendidos nos programas. É simples assim.
A questão já tem uma resposta aceita e várias outras respostas. Para que sua resposta seja útil, ela deve adicionar novas informações úteis ou novos insights para o problema. Apenas repetir informações em outras respostas não é útil.
Há também um literal nulo especial que pode ser usado como valor para qualquer tipo de referência. null pode ser atribuído a qualquer variável, exceto variáveis de tipos primitivos. Há pouco que você pode fazer com um valor nulo além de testar sua presença. Portanto, null é frequentemente usado em programas como um marcador para indicar que algum objeto está indisponível.
É por isso que as seguintes declarações fornecerão um erro e não o outro: -
char a = null; // Tipo incompatível: não é possível converter de nulo em char.
char == 0
Respostas:
O valor padrão de um
char
atributo é de fato'\u0000'
(o caractere nulo) conforme declarado na Especificação da linguagem Java, seção §4.12.5 Valores iniciais das variáveis .No meu sistema, a linha
System.out.println('\u0000');
imprime um pequeno quadrado, o que significa que não é um caractere imprimível - como esperado.fonte
'\u0000'
não é o mesmo valor quenull
null character
? Algumas respostas a essas perguntas referem-se ao valor padrão como caractere nulo.null
em termos de java, ou seja\u0000 == null
, retornariafalse
'\ u0000' é o valor padrão para um caractere. Seu equivalente decimal é 0.
Quando você está declarando alguma variável char sem inicializá-la, '\ u0000' será atribuído a ela por padrão.
veja este código
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); } }
Este código imprimirá verdadeiro para a última impressão.
fonte
O valor padrão de Character é Character.MIN_VALUE que internamente representado como
MIN_VALUE = '\u0000'
Além disso, você pode verificar se o campo de caractere contém o valor padrão como
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE); if (DEFAULT_CHAR.compareTo((Character) value) == 0) { }
fonte
'\u0000'
significanull
. Portanto, se você imprimir uma variável char não inicializada, não obterá nada.fonte
É '\ u0000'. Veja aqui para mais informações .
fonte
O char padrão é o caractere com valor int de 0 (zero).
char NULLCHAR = (char) 0;
char NULLCHAR = '\ 0';
fonte
é tentador dizer como um espaço em branco ou inteiro 0 conforme a prova abaixo
char c1 = '\u0000'; System.out.println("*"+c1+"*"); System.out.println((int)c1);
mas eu não diria isso porque, pode diferir em diferentes plataformas ou no futuro. O que realmente me importa é nunca usar esse valor padrão, então antes de usar qualquer caractere, verifique se ele é \ u0000 ou não, e use-o para evitar mal-entendidos nos programas. É simples assim.
fonte
O valor padrão de um tipo de dados char é '\ u0000' (ou 0) e um valor máximo de '\ uffff' (ou 65.535 inclusive).
Você pode ver as informações aqui .
fonte
Observe que há uma diferença distinta entre nulo e zero. Em http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (referenciado acima), a declaração é feita: -
Há também um literal nulo especial que pode ser usado como valor para qualquer tipo de referência. null pode ser atribuído a qualquer variável, exceto variáveis de tipos primitivos. Há pouco que você pode fazer com um valor nulo além de testar sua presença. Portanto, null é frequentemente usado em programas como um marcador para indicar que algum objeto está indisponível.
É por isso que as seguintes declarações fornecerão um erro e não o outro: -
char a = null; // Tipo incompatível: não é possível converter de nulo em char.
char b = 0; // Sintaxe válida.
fonte
\u0000
é o valor padrão para o tipo char em JavaComo outros mencionaram, você pode usar a comparação para verificar o valor de uma variável não inicializada.
char ch; if(ch==0) System.out.println("Default value is the null character");
fonte
Eu acho que é,
'\u00000'
ou apenas em''
vez de'\u0000'
(O primeiro tem 5 zeros enquanto o último tem quatro zeros.)fonte
O valor padrão de
char
é \ u0000public class DefaultValues { char varChar; public static void main(String...l) { DefaultValues ob =new DefaultValues(); System.out.println(ob.varChar=='\u0000'); } }
Isso vai voltar verdadeiro
fonte
O valor padrão de char é null que é '\ u0000' de acordo com o gráfico Unicode . Vamos ver como funciona durante a impressão.
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(); } }
Nota: a saída está em branco.
fonte
O valor padrão de um tipo primitivo char é '\ u0000' (caractere nulo) conforme declarado na Especificação da linguagem Java.
O atalho para 'u0000' é '\ 0', então o nulo pode ser representado por 'u0000' ou '\ 0'.
O programa Java abaixo valida representações nulas usando o campo char de instância '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); } }
fonte