में एक int क्यों है, मैं सोच रहा हूं कि इंडेक्स के पैरामीटर को int क्यों करें, जब वर्णन एक char कहता है।स्ट्रिंग.इंडेक्सऑफ विधि का पैरामीटर जावा
सार्वजनिक पूर्णांक indexOf (पूर्णांक ch)
Returns the index within this string of the first occurrence of the specified **character**
http://download.oracle.com/javase/1,5.0/docs/api/java/lang/String.html#indexOf%28int%29
Also, both of these compiles fine:
char c = 'p';
str.indexOf(2147483647);
str.indexOf(c);
एक] मूल रूप से, मैं क्या लेकर दुविधा में हूँ जावा में पूर्णांक 32 बिट है, जबकि यूनिकोड वर्ण 16 बिट कर रहे हैं।
बी] int का उपयोग करने के बजाय चरित्र का उपयोग क्यों न करें। क्या यह कोई प्रदर्शन अनुकूलन है? क्या int int से प्रतिनिधित्व करना मुश्किल है? कैसे ?
मुझे लगता है कि यह इसके लिए सरल तर्क होना चाहिए और इससे मुझे इसके बारे में और भी पता चलता है!
धन्यवाद!
Thnx। ठीक है, तो अब मैं इंडेक्सऑफ (int) को यूनिकोड कोडपॉइंट की अपेक्षा करता हूं, मेरा दूसरा सवाल था .. वह क्यों है? । क्यों न केवल 16-बिट वर्णों का उपयोग करें? – codeObserver
क्योंकि एक यूनिकोड चेरेक्टर वास्तव में 22 बिट्स है, और 16 नहीं। इसलिए 'अक्षर/अक्षर' (कोड पॉइंट) हैं जिन्हें जावा चार में संग्रहीत नहीं किया जा सकता है। यही कारण है कि जावा स्ट्रिंग एक 'कोडपॉइंट/लेटर' स्टोर करने के लिए 2 वर्णों का उपयोग कर सकती है (यदि आप वास्तव में जानना चाहते हैं तो यूटीएफ -16 सरोगेट जोड़े देखें)। – MTilsted