2016-10-17 12 views
7

मैंने charAt() विधि के साथ विभिन्न तुलनाओं को देखा है।जावा स्ट्रिंग/चार charAt() तुलना

हालांकि, मैं वास्तव में उनमें से कुछ को समझ नहीं सकता।

String str = "asdf"; 
str.charAt(0) == '-'; // What does it mean when it's equal to '-'? 


char c = '3'; 
if (c < '9') // How are char variables compared with the `<` operator? 

किसी भी मदद की सराहना की जाएगी।

+0

_ "क्या इसका मतलब यह है जब यह करने के लिए बराबर है '-'" _ नहीं एक सुराग, केवल इस बात का createor कोड पता हो सकता है ... –

+2

_ "' <'ऑपरेटर के साथ तुलना में चार चर कैसे हैं?" _ आदिम 'char' एक _numeric_ प्रकार है और'> 'या' <' –

उत्तर

13

// इसका अर्थ क्या है जब यह '-' के बराबर है?

प्रत्येक पत्र और प्रतीक एक चरित्र है। आप स्ट्रिंग के पहले अक्षर को देख सकते हैं और एक मैच की जांच कर सकते हैं।

इस मामले में आपको पहला अक्षर मिलता है और देखें कि यह शून्य चरित्र है या नहीं। यह शून्य चिह्न (char) 45 नीचे देखें

// < ऑपरेटर के साथ तुलना में चर चर कैसे हैं?

जावा में, सभी वर्ण वास्तव में 16-बिट हस्ताक्षरित संख्याएं हैं। प्रत्येक चरित्र में यूनिकोड पर आधारित एक संख्या होती है। जैसे '9' चरित्र (char) 57 है यह तुलना 9 के लिए कोड से कम किसी भी चरित्र के लिए सच है। अंतरिक्ष।

enter image description here

अपने स्ट्रिंग के प्रथम वर्ण 'a' जो है (char) 97 तो (char) 97 < (char) 57 झूठी है।

+0

की तुलना में थर्मल कर सकता है यह चरित्र का आधार है एन्कोडिंग। https://en.wikipedia.org/wiki/Character_encoding उपरोक्त संदर्भित परिभाषा ASCII वर्ण एन्कोडिंग का उपयोग कर रही है। – Andrew

0

str.charAt(0) == '-'; इस मामले में false में एक बुलियन लौटाता है।

if (c < '9') '9' के एसीआईआई मूल्य के साथ '3' के एसीआईआई मूल्य की तुलना करता है और फिर बूलियन लौटाता है।

0
str.charAt(0) == '-' 

यह कथन सत्य देता है यदि बिंदु 0 पर वर्ण '-' है और अन्यथा झूठा है।

if (c < '9') 

यह 99 और 57 क्रमशः इस मामले में '9' के ascii मूल्य के साथ ग की ascii मूल्य तुलना करती है।

0

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

जावा वर्ण मूल यूनिकोड विनिर्देश के अनुसार परिभाषित किए गए हैं, जो प्रत्येक वर्ण को 16-बिट मान देता है। ये वे मान हैं जिनसे आप तुलना कर रहे हैं जब आप c>'3' या str.charAt(0) == '-' जैसे कुछ की तुलना कर रहे हैं।

1
String str = "asdf"; 
String output = " "; 
if(str.charAt(0) == '-'){ 
    // What does it mean when it's equal to '-'? 
    output= "- exists in the first index of the String"; 
} 
else { 
    output="- doesn't exists in the first index of the String"; 
} 
System.out.println(output); 

यह जांचता है कि क्या यह सूचकांक 0 में मौजूद है, यह तुलना है।

if (c < '9') के लिए, सी और 9 के एएससीआई मानों की तुलना की जाती है। मुझे नहीं पता कि आप क्यों जांच करेंगे कि सी के आसिसी समकक्ष '9' के बराबर एसीआईआई के बराबर है।

आप किसी भी चार की ascii लाभ प्राप्त करना चाहते हैं, तो आप कर सकते हैं:

char character = 'c'; 
int ascii = character; 
System.out.println(ascii); 
संबंधित मुद्दे