/ / Java: == प्रिंट स्टेटमेंट में अलग-अलग उत्तर दिए गए हैं [डुप्लिकेट] - जावा

जावा: == प्रिंट स्टेटमेंट में अलग-अलग उत्तर दिए जाते हैं [डुप्लिकेट] - जावा

String a = "abc";
String b = "abc";

System.out.println("Result .... " + a==b); // false
System.out.println(a==b);                  // true

1सेंट प्रिंट स्टेटमेंट प्रिंट करता है false और 2nd प्रिंट true, हालांकि आदर्श रूप से यह होना चाहिए true। यह ऐसा क्यों है false 1 मेंसेंट प्रिंट स्टेटमेंट?

उत्तर:

उत्तर № 1 के लिए 4

System.out.println("Result .... " +a==b); -> परिणाम स्ट्रिंग को "ए" के साथ जोड़ा जाएगा और फिर बी के साथ तुलना की जाएगी ताकि यह गलत हो।


जवाब के लिए 4 № 2

कार्रवाई के आदेश:

"Result .... " + a==b

के बराबर है

("Result .... " +a) == b

कोनसा होगा false चूंकि दो तार एक ही संदर्भ नहीं हैं।

इसके लिए स्पष्टीकरण यह है कि + इसके अलावा ऑपरेटर एक है उच्चतर से पूर्वता == तार्किक समानता।

भाव a == b वापस आ रहा है true अपने दूसरे बयान के कारण होना शामिल, जिसमें a तथा b वास्तव में एक ही स्ट्रिंग ऑब्जेक्ट को देखें।

क्लिक करें यहाँ जावा में ऑपरेटर पूर्वता के Oracle की तालिका के लिंक के लिए।


जवाब के लिए 2 № 3
  1. जावा में == द्वारा समानता की जांच करना भूल गए। जावा में यह ऑपरेशन ऑब्जेक्ट लिंक की समानता की जांच करता है। इसके अतिरिक्त यह सरल संख्याओं की समानता की जाँच के लिए लागू है। आपको .equals मेथड का उपयोग करना चाहिए

    String a = "abc";
    String b = new String(a);
    System.out.printLn(a == b);//false
    System.out.println(a.equals(b));//true
    
  2. जावा में ऑपरेशन ऑर्डर के बारे में जानें


जवाब के लिए 0 № 4

में है क्योंकि "Result .... " +a==b यह पहली बार जोड़ें "Result .... " साथ में a और फिर == सेवा मेरे b। अगर आप इस तरह लिखते हैं "Result .... " +(a==b), तो ठीक रहेगा।


जवाब के लिए 0 № 5

पहले बयान में, आप तुलना कर रहे हैं "Result .... " + a साथ में b। दूसरे में, आप तुलना कर रहे हैं a साथ में b, इसलिए अंतर। अपना पहला बयान इस प्रकार बदलें:

 System.out.println("Result .... " + (a==b));

और ध्यान रखें कि स्ट्रिंग्स की तुलना करने के लिए तुलना करनी चाहिए equals() के बजाय विधि ==.


जवाब के लिए 0 № 6

System.out.println("Result .... " +a==b);

तार Result "a" के साथ जोड़ा जाता है और फिर b के साथ तुलना करता है इसलिए यह गलत प्रदान करता है। (Result .... a == b) जो झूठा है।

समझने के लिए इस लिंक को फॉलो करें जावा में ऑपरेटरों की पूर्वता तथा इस.

Operator + has more precedence than == operator.

कोष्ठक जोड़ने का प्रयास करें, आप अंतर देखेंगे। ब्रैकेट का मूल्यांकन अलग से किया जाता है।

public static void main(String[] args) {
String a = "abc";
String b = "abc";

System.out.println("Result .... " + (a == b)); // false
System.out.println(a == b); // true}
}

उत्पादन

Result .... true
true