java - हरण - पूर्णांक संख्या मराठी




वर्णों को जावा में पूर्णांक में कनवर्ट करना (4)

क्या कोई मुझे बता सकता है कि यहां क्या हो रहा है:

char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));

यह प्रिंट i: 43 ch:-1 । क्या इसका मतलब है कि मुझे char को int बदलने के लिए आदिम रूपांतरणों पर भरोसा करना है? तो मैं एक Character को Integer कैसे परिवर्तित कर सकता हूं?

संपादित करें: हां मुझे पता है Character.getNumericValue रिटर्न -1 यदि यह संख्यात्मक मान नहीं है और यह मुझे समझ में आता है। सवाल यह है कि क्यों प्राचीन रूपांतरण करना 43 लौटाता है?

एडिट 2: 43 + लिए एएससीआईआई है, लेकिन मैं उम्मीद करता हूं कि कलाकार सफल होने की तरह सफल न हो। getNumericValue सफल नहीं हुआ। अन्यथा इसका मतलब है कि एक ही ऑपरेशन करने के लिए दो अर्थपूर्ण समकक्ष तरीके हैं लेकिन विभिन्न परिणामों के साथ?


43 "+" प्रतीक के लिए dec ascii संख्या है। यह बताता है कि आपको 43 वापस क्यों मिलता है। http://en.wikipedia.org/wiki/ASCII


जैसा कि दस्तावेज़ स्पष्ट रूप से बताता है, Character.getNumericValue() वर्ण के मान को एक अंक के रूप में देता है।
यदि चरित्र एक अंक नहीं है तो यह -1 लौटाता है।

यदि आप बॉक्स किए गए Character ऑब्जेक्ट का न्यूमेरिक यूनिकोड कोड पॉइंट प्राप्त करना चाहते हैं, तो आपको इसे पहले अनबॉक्स करना होगा:

int value = (int)c.charValue();

Character#getNumericValue लिए जावाडोक से Character#getNumericValue :

यदि चरित्र के पास संख्यात्मक मान नहीं है, तो -1 वापस आ गया है। यदि चरित्र में एक संख्यात्मक मान है जिसे गैर-अभिन्न पूर्णांक (उदाहरण के लिए, एक आंशिक मान) के रूप में प्रदर्शित नहीं किया जा सकता है, तो -2 वापस कर दिया जाता है।

चरित्र + संख्यात्मक मान नहीं है, इसलिए आपको -1 मिल रहा है।

अद्यतन करें:

कारण है कि आदिम रूपांतरण आपको 43 दे रहा है कि चरित्र '+' को पूर्णांक 43 के रूप में एन्कोड किया गया है।


Character.getNumericValue(c)

java.lang.Character.getNumericValue(char ch) int मान देता है जो निर्दिष्ट यूनिकोड वर्ण दर्शाता है। उदाहरण के लिए, चरित्र '\u216C' (रोमन अंक पचास) 50 के मान के साथ एक int वापस कर देगा।

अक्षरों को उनके अपरकेस ('\u0041' through '\u005A') , लोअरकेस ('\u0061' through '\u007A') , और पूर्ण चौड़ाई संस्करण ('\uFF21' through '\uFF3A' and '\uFF41' through '\uFF5A') माध्यम से) 10 से 35 तक संख्यात्मक मान होते हैं। यह यूनिकोड विनिर्देश से स्वतंत्र है, जो इन चार मानों के लिए संख्यात्मक मान निर्दिष्ट नहीं करता है।

यह विधि चरित्र के संख्यात्मक मान को एक गैर-ऋणात्मक int मान के रूप में लौटाती है;

-2 यदि चरित्र का एक संख्यात्मक मान है जो एक गैर-पूर्णांक पूर्णांक नहीं है;

-1 अगर चरित्र का कोई संख्यात्मक मूल्य नहीं है।

और here लिंक है।








primitive