char varsayılan değeri nedir?


89
char c = '\u0000';

C'yi yazdırdığımda, komut satırı penceresinde 'a' gösteriyor.

Öyleyse, bir karakter türü alanının varsayılan değeri nedir?

Birisi '\ u0000' unicode'da null anlamına geldiğini söyledi; bu doğru mu?


karakterinizin varsayılan değere sahip olup olmadığını şu şekilde kontrol edebilirsiniz:char == 0
ACV

Yanıtlar:


105

Bir charözniteliğin varsayılan değeri aslında '\u0000'Java Dil Spesifikasyonu, Bölüm 4.12.5 Değişkenlerin İlk Değerleri'nde belirtildiği gibi (boş karakterdir) .

Benim sistemimde, satır System.out.println('\u0000');küçük bir kare yazdırıyor, yani beklendiği gibi yazdırılabilir bir karakter değil.


26
Bunun '\u0000'ile aynı değer olmadığına dikkat etmek önemlidirnull
Edd

Nedir null character? Bu soruların bazı yanıtları, varsayılan değeri boş karakter olarak belirtiyor.
Quazi İrfan

3
@ Óscar López, '\ 0' karakteri ne olacak? aynı değiller mi?
Tarık

5
@Tarik evet, onlar aynı.
Óscar López

3
@iamcreasy, söylediklerin doğru. Notum sadece 'boş karakter' bir karakterdir. nullJava terimleriyle değil yani \u0000 == nullgeri dönecektifalse
Edd

30

"\ u0000" bir karakter için varsayılan değerdir. Ondalık eşdeğeri 0'dır.

Bir char değişkenini ilklendirmeden bildirirken, varsayılan olarak ona '\ u0000' atanacaktır.

bu kodu gör

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);
    }
}

Bu kod , son baskı için doğru olarak yazdırılacaktır.


9

Karakterin varsayılan değeri Character.MIN_VALUE şeklindedir. dahili olarak şu şekilde temsil edilen şeklindedir.MIN_VALUE = '\u0000'

Ek olarak, karakter alanının varsayılan değer içerip içermediğini kontrol edebilirsiniz.

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

}

7

'\u0000'anlamına gelir null. Yani, başlatılmamış bir char değişkeni yazdırırsanız, hiçbir şey elde edemezsiniz.


2
Aslında bir derleme hatası alırsınız;) '\ u0000', bir karakter alanının 'başlatıldığı' varsayılan değerdir
Edd

1
Hiçbir şey alamayacaksın. Beyaz bir boşluk veya kare elde edeceksiniz.
Roshana Pitigala

Hem c hem de c1'i '\ u0000' System.out.println (c + c1) olarak koyarsam bir "0" alırım;
alan


0

Varsayılan karakter, int değeri 0 (sıfır) olan karakterdir.

char NULLCHAR = (karakter) 0;

char NULLCHAR = '\ 0';


0

beyaz boşluk veya tamsayı 0 olarak söyleyin, kanıtın altındaki

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

ama öyle demezdim çünkü farklı platformlarda veya gelecekte farklı olabilir. Gerçekten umursadığım şey, bu varsayılan değeri asla kullanmayacağım, bu nedenle herhangi bir karakter kullanmadan önce sadece \ u0000 olup olmadığını kontrol edin, ardından programlarda yanlış anlamaları önlemek için kullanın. Bu kadar basit.


0

Bir char veri türünün varsayılan değeri "\ u0000" (veya 0) ve maksimum "\ uffff" (veya 65.535 dahil) değeridir.

Bilgileri burada görebilirsiniz .


2
Sorunun zaten kabul edilmiş bir cevabı ve birkaç başka cevabı var. Cevabınızın yararlı olması için soruna yararlı yeni bilgiler veya yeni içgörüler eklemesi gerekir. Sadece diğer cevaplarda bilgileri tekrarlamak yardımcı olmaz.
AdrianHHH

0

Boş ve sıfır arasında belirgin bir fark olduğuna dikkat edin. In http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (yukarıda başvurulan), deyim yapılır: -

Ayrıca, herhangi bir başvuru türü için bir değer olarak kullanılabilecek özel bir boş hazır bilgi de vardır. null, ilkel türlerin değişkenleri dışında herhangi bir değişkene atanabilir. Varlığını test etmenin ötesinde boş bir değerle yapabileceğiniz çok az şey var. Bu nedenle, null genellikle programlarda bazı nesnelerin kullanılamaz olduğunu belirtmek için bir işaretçi olarak kullanılır.

Bu nedenle aşağıdaki ifadeler size bir hata verirken diğerini değil: -

char a = boş; // Tür uyuşmazlığı: null'dan karaktere dönüştürülemez.

char b = 0; // Geçerli sözdizimi.


0

\u0000 Java'da char türü için varsayılan değerdir

Başkalarının da bahsettiği gibi, başlatılmamış bir değişkenin değerini kontrol etmek için karşılaştırmayı kullanabilirsiniz.

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

-1

Sanırım öyle '\u00000'ya da ''değil '\u0000' (Birincisinde 5 sıfır varken sonuncusunda dört sıfır var.)


@ JohannesH.- bu bana bir cevap gibi görünüyor. Bunu 'yanıt değil' olarak işaretlemek doğru IMO değildir.
Krease

-1

İçin varsayılan değer charolan \ u0000

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

Bu gerçek olacak


-1

Char öğesinin varsayılan değeri, Unicode grafiğine göre "\ u0000" olan null'dur . Çıktı alırken nasıl çalıştığını görelim.

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();   
    } }

Not: Çıktı boştur.


-2

Bir char temel türünün varsayılan değeri, Java Dil Belirtimi'nde belirtildiği gibi "\ u0000" (boş karakter) şeklindedir.

"U0000" için kısayol "\ 0" dır, Bu nedenle null, "u0000" veya "\ 0" ile temsil edilebilir.

Aşağıdaki Java programı, 'c' örnek karakter alanını kullanarak boş gösterimleri doğrular.

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);
    }

}

çıktı:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.