जावा में एक स्ट्रिंग की बाइट गिनती की गणना
जावा में, स्ट्रिंग वर्णों से बने होते हैं, जो उनके बाइट प्रतिनिधित्व के आधार पर भिन्न हो सकते हैं चयनित एन्कोडिंग. एक स्ट्रिंग में बाइट्स की संख्या निर्धारित करने के लिए, किसी को बाइट्स में रूपांतरण के लिए उपयोग किए जाने वाले वर्ण एन्कोडिंग पर विचार करना चाहिए।
एन्कोडिंग-निर्भर बाइट गणना
समझने की कुंजी बाइट गिनती यह है कि अलग-अलग एन्कोडिंग के परिणामस्वरूप एक ही स्ट्रिंग के लिए अलग-अलग बाइट आकार होते हैं। उदाहरण के लिए, UTF-8 में एन्कोड की गई एक स्ट्रिंग को प्रति वर्ण 1 बाइट की आवश्यकता हो सकती है, जबकि UTF-16 में एन्कोड की गई एक स्ट्रिंग को प्रति वर्ण 2 बाइट्स की आवश्यकता हो सकती है।
एक स्ट्रिंग को बाइट्स में परिवर्तित करना
बाइट गिनती की गणना करने के लिए, हम getBytes() विधि का उपयोग करके स्ट्रिंग को बाइट सरणी में परिवर्तित कर सकते हैं:
byte[] utf8Bytes = string.getBytes("UTF-8");
byte[] utf16Bytes = string.getBytes("UTF-16");
परिणामी बाइट सरणी की लंबाई उस विशेष एन्कोडिंग के लिए बाइट गिनती प्रदान करती है:
int utf8ByteCount = utf8Bytes.length;
int utf16ByteCount = utf16Bytes.length;
उदाहरण
स्ट्रिंग "हैलो वर्ल्ड" पर विचार करें:
String string = "Hello World";
// Print the number of characters in the string
System.out.println(string.length()); // 11
// Calculate the byte count for different encodings
byte[] utf8Bytes = string.getBytes("UTF-8");
byte[] utf16Bytes = string.getBytes("UTF-16");
byte[] utf32Bytes = string.getBytes("UTF-32");
// Print the byte counts
System.out.println(utf8Bytes.length); // 11
System.out.println(utf16Bytes.length); // 24
System.out.println(utf32Bytes.length); // 44
विचार
स्ट्रिंग्स को बाइट्स में परिवर्तित करते समय वांछित वर्ण एन्कोडिंग को स्पष्ट रूप से निर्दिष्ट करना आवश्यक है। डिफ़ॉल्ट पर भरोसा करने से अप्रत्याशित परिणाम हो सकते हैं, खासकर जब उन भाषाओं के साथ काम करते हैं जो गैर-ASCII वर्णों का उपयोग करते हैं। इसका मतलब यह है कि एक एकल वर्ण को अलग-अलग संख्या में बाइट्स द्वारा दर्शाया जा सकता है, जो एन्कोडिंग चयन के महत्व को और अधिक उजागर करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3