चार का डिफ़ॉल्ट मान क्या है?


89
char c = '\u0000';

जब मैं c प्रिंट करता हूं, तो यह कमांड लाइन विंडो में 'a' दिखाता है।

तो एक चार प्रकार के क्षेत्र का डिफ़ॉल्ट मूल्य क्या है?

किसी ने कहा '\ u0000' का अर्थ है यूनिकोड में अशक्त; क्या वह सही है?


आप देख सकते हैं कि आपके चार्ट में डिफ़ॉल्ट मान है:char == 0
ACV

जवाबों:


105

एक charविशेषता का डिफ़ॉल्ट मान वास्तव में '\u0000'(शून्य वर्ण) है जैसा कि जावा भाषा विनिर्देश में कहा गया है, खंड .124.12.5 आरंभिक मान भिन्नताएं

मेरे सिस्टम में, लाइन System.out.println('\u0000');एक छोटे वर्ग को प्रिंट करती है, जिसका अर्थ है कि यह प्रिंट करने योग्य चरित्र नहीं है - जैसा कि अपेक्षित था।


26
ऐसा नहीं है कि नोट के लिए महत्वपूर्ण है '\u0000'के रूप में एक ही मूल्य नहीं है null
Edd

क्या है null character? इस प्रश्न के कुछ उत्तर डिफ़ॉल्ट मान को शून्य वर्ण के रूप में संदर्भित कर रहे हैं।
क़ाज़ी इरफ़ान

3
@ Óscar लोपेज़, चार '0' के बारे में क्या? वे एक जैसे नहीं हैं ?
तारिक

5
@ तारिक हां, वे समान हैं।
Oscar Lopez

3
@iamcreasy आप जो कहते हैं वह सही है। मेरा ध्यान सिर्फ इतना है कि 'अशक्त चरित्र' एक चरित्र है। ऐसा नहीं है nullजावा मामले में यानी \u0000 == nullवापसी होगीfalse
Edd

30

'\ u0000' एक चरित्र के लिए डिफ़ॉल्ट मान है। इसका दशमलव समतुल्य 0 है।

जब आप इसे शुरू किए बिना कुछ चार चर घोषित कर रहे हैं, तो डिफ़ॉल्ट रूप से '\ u0000' को इसे सौंपा जाएगा।

इस कोड को देखें

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

यह कोड अंतिम प्रिंट के लिए सही प्रिंट होगा ।


9

चरित्र का डिफ़ॉल्ट मान है Character.MIN_VALUE जो आंतरिक रूप से के रूप में प्रतिनिधित्वMIN_VALUE = '\u0000'

इसके अतिरिक्त, आप जाँच सकते हैं कि वर्ण फ़ील्ड में डिफ़ॉल्ट मान है या नहीं

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

}

7

'\u0000'के लिए खड़ा है null। इसलिए यदि आप एक असिंचित चार चर को प्रिंट करते हैं, तो आपको कुछ भी नहीं मिलेगा।


2
वास्तव में आपको एक संकलन त्रुटि मिलेगी;) '\ u0000' डिफ़ॉल्ट मान है कि एक चार फ़ील्ड के साथ 'इनिशियलाइज़्ड' है
Edd

1
आपको कुछ नहीं मिलेगा। आपको एक सफेद स्थान या एक वर्ग मिलेगा।
रोशन पिटिगला

अगर मुझे c और c1 दोनों को '\ u0000' System.out.println (c + 1) के रूप में रखा गया तो मुझे "0" मिला;
एलन


0

डिफ़ॉल्ट वर्ण 0 (शून्य) के अंतर मान वाला वर्ण है।

char NULLCHAR = (चार) 0;

char NULLCHAR = '\ 0';


0

इसके लुभावने प्रमाण के अनुसार सफेद स्थान या पूर्णांक 0 कहिए

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

लेकिन मैं ऐसा नहीं कहूंगा क्योंकि, यह अलग-अलग प्लेटफार्मों या भविष्य में भिन्न हो सकता है। मुझे वास्तव में परवाह है कि मैं इस डिफ़ॉल्ट मूल्य का उपयोग कभी नहीं करूंगा, इसलिए किसी भी चार का उपयोग करने से पहले यह जांच लें कि यह \ u0000 है या नहीं, फिर कार्यक्रमों में गलतफहमी से बचने के लिए इसका उपयोग करें। यह इतना सरल है।


0

एक चार डेटा प्रकार का डिफ़ॉल्ट मान '\ u0000' (या 0) और '\' ओफ़्फ़ '(या 65,535 समावेशी) का अधिकतम मूल्य है।

आप यहां जानकारी देख सकते हैं ।


2
प्रश्न में पहले से ही स्वीकृत उत्तर और कई अन्य उत्तर हैं। आपके उत्तर के उपयोगी होने के लिए इसमें उपयोगी नई जानकारी या समस्या के लिए नई जानकारी को जोड़ना चाहिए। अन्य उत्तरों में सिर्फ जानकारी दोहराना मददगार नहीं है।
AdrianHHH

0

ध्यान दें कि शून्य और शून्य के बीच एक अलग अंतर है। में http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (ऊपर संदर्भित), बयान देने के बाद: -

वहाँ भी एक विशेष अशक्त शाब्दिक है जो किसी भी संदर्भ प्रकार के लिए एक मूल्य के रूप में इस्तेमाल किया जा सकता है। नल किसी भी चर को सौंपा जा सकता है, आदिम प्रकार के चर को छोड़कर। इसकी उपस्थिति के लिए परीक्षण से परे एक अशक्त मूल्य के साथ आप बहुत कम कर सकते हैं। इसलिए, नल को अक्सर कार्यक्रमों में मार्कर के रूप में उपयोग किया जाता है ताकि यह इंगित किया जा सके कि कुछ ऑब्जेक्ट अनुपलब्ध है।

इसीलिए निम्नलिखित कथन आपको एक त्रुटि देगा और अन्य नहीं: -

चार = एक अशक्त; // टाइप मिसमैच: नल से चार में परिवर्तित नहीं हो सकता।

चार बी = 0; // मान्य वाक्य रचना।


0

\u0000 जावा में चार प्रकार के लिए डिफ़ॉल्ट मान है

जैसा कि दूसरों ने उल्लेख किया है, आप एक असमान वैरिएबल के मूल्य की जांच करने के लिए तुलना का उपयोग कर सकते हैं।

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

-1

मुझे लगता है कि यह '\u00000'या केवल के ''बजाय है '\u0000' (1 वाले में 5 शून्य हैं जबकि अंतिम में चार शून्य हैं।)


@ जोहान्सहै- यह मेरे लिए एक जवाब की तरह दिखता है। इसे ging एक उत्तर नहीं ’के रूप में चिह्नित करना आईएमओ के लिए सही नहीं है।
क्रीज

-1

के लिए डिफ़ॉल्ट मान charहै \ u0000

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

यह सच लौटेगा


-1

चार का डिफ़ॉल्ट मान अशक्त है जो यूनिकोड चार्ट के अनुसार '\ u0000' है । आइए देखते हैं कि प्रिंट करते समय यह कैसे काम करता है।

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

नोट: आउटपुट रिक्त है।


-2

जैसा कि जावा लैंग्वेज स्पेसिफिकेशन में कहा गया है, एक चार आदिम प्रकार का डिफ़ॉल्ट मान '\ u0000' (शून्य वर्ण) है।

'U0000' का शॉर्टकट '\ 0' है, इसलिए अशक्त को 'u0000' या '\ 0' द्वारा दर्शाया जा सकता है।

नीचे दिए गए जावा प्रोग्राम उदाहरण चार फ़ील्ड '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);
    }

}

उत्पादन:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.