जैसा कि मेरा शीर्षक बताता है, यह एक सैद्धांतिक प्रश्न है। मैं जानना चाहता हूं कि अगर जावा स्ट्रिंग को शून्य समाप्त कर देता है।क्या जावा स्ट्रिंग को निरस्त कर दिया गया है?
उत्तर
जावा तारों को सी या सी ++ में शून्य वर्णों के साथ समाप्त नहीं किया जाता है। यद्यपि जावा स्ट्रिंग आंतरिक रूप से चार सरणी का उपयोग करती है लेकिन इसमें कोई कमी नहीं होती है। स्ट्रिंग क्लास स्ट्रिंग में वर्णों की संख्या जानने के लिए लंबाई नामक एक विधि प्रदान करता है।
public static void main(String[] args) {
String s = "Juned";
System.out.println(s);
}
डीबगर स्क्रीनशॉट:
क्या आपके पास अपने उत्तर का समर्थन करने का कोई तर्क है? –
@ जुनेड अहसान, क्या आप कृपया थोड़ा सा समझा सकते हैं :) – Dewsworld
जावा विनिर्देश इसका उल्लेख नहीं करता है, लेकिन यदि आप अपना कोड डीबग मोड में चलाते हैं, तो आप अलमारी को स्ट्रिंग आंतरिक सरणी की सामग्री देख सकते हैं, और कोई स्थायी शून्य वर्ण नहीं होगा । –
इससे कोई फर्क पड़ता है
यहाँ सरल कोड और उसके डिबगर सामग्री है?
यदि आप किसी जावा स्ट्रिंग को किसी प्रकार के क्रमबद्ध प्रारूप (डिस्क, नेटवर्क इत्यादि) में कनवर्ट करते हैं, तो यह सब मायने रखता है क्रमशः प्रारूप है, जेवीएम का आंतरिक प्रारूप नहीं।
यदि आप जेएनआई के माध्यम से सी कोड में स्ट्रिंग का डेटा पढ़ रहे हैं, तो आप सीधे डेटा को कभी नहीं पढ़ते हैं, आप हमेशा GetStringChars()
या GetStringUTFChars()
जैसे जेएनआई फ़ंक्शंस का उपयोग करते हैं। GetStringChars()
को नल-टर्मिनेटेड डेटा लौटने के रूप में प्रलेखित नहीं किया गया है, इसलिए आपको यह नहीं मानना चाहिए कि यह शून्य-समाप्त हो गया है- आपको इसकी लंबाई निर्धारित करने के लिए GetStringLength()
का उपयोग करना होगा। इसी प्रकार GetStringUTFChars()
के साथ, modified UTF-8 format में इसकी लंबाई निर्धारित करने के लिए आपको GetStringUTF8Length()
का उपयोग करना होगा।
"क्या इससे कोई फर्क पड़ता है?" उम्म ... यह जानना अच्छा लगता है कि कंप्यूटर कैसे काम करते हैं। – citelao
इससे कोई फर्क नहीं पड़ता कि क्या आप इस बारे में चिंतित हैं कि क्या होता है यदि आप 'NUL' वर्ण को 'स्ट्रिंग' में डालते हैं। हालांकि, अगर आप ऐसा कर रहे हैं, तो यह तर्कसंगत है कि आप 'स्ट्रिंग' का गलत इस्तेमाल कर रहे हैं ... क्योंकि * वास्तविक * पाठ में 'एनयूएल' वर्ण नहीं दिखना चाहिए। (लेकिन मैं स्वीकार करता हूं कि ऐसे उपयोग-मामले हैं जहां आप 'NUL' को 'स्ट्रिंग' में वैसे भी अनुमति देना चाहते हैं।) –
मैं जानना चाहता हूं कि यदि जावा स्ट्रिंग को शून्य समाप्त कर देता है।
सं। ए स्ट्रिंग को char
मानों का एक निश्चित लंबाई अनुक्रम माना जाता है। सभी संभव char
मान (0 से 65535 तक) स्ट्रिंग में उपयोग किए जा सकते हैं। कोई "प्रतिष्ठित" मान नहीं है जिसका अर्थ है कि स्ट्रिंग समाप्त होती है।
तो वे स्ट्रिंग समाप्त करने को कैसे ट्रैक करते हैं? लंबाई का उपयोग करना?
हां। String
ऑब्जेक्ट में निजी length
फ़ील्ड है (सभी कार्यान्वयन में मैंने जांच की है ...)।
यदि आप जावा स्ट्रिंग्स को कार्यान्वित करने के तरीके के बारे में और अधिक समझना चाहते हैं, तो विभिन्न संस्करणों के लिए स्रोत कोड ऑनलाइन उपलब्ध है। "Java.lang.String स्रोत" के लिए Google।
- 1. System.Net.WebException: अनुरोध निरस्त कर दिया गया था: अनुरोध रद्द कर दिया गया था
- 2. Django + Postgres: "वर्तमान लेनदेन निरस्त कर दिया गया है, लेनदेन ब्लॉक के अंत तक अनदेखा आदेश"
- 3. जांचें कि क्या दिया गया स्ट्रिंग एक यूआरएल है
- 4. स्ट्रिंगवाइटर को DataContractSerializer क्यों छोटा कर दिया गया है?
- 5. "कनेक्शन निरस्त किया गया" और
- 6. java.io.FileNotFoundException: (एक्सेस अस्वीकार कर दिया गया है)
- 7. प्राधिकरण अस्वीकार कर दिया गया है। हमेशा
- 8. रद्द कर दिया गया रद्द कर दिया गया कार्य स्थिति रद्द करने के बाद रद्द कर दिया गया। थ्रोइफ कैनसेलेशनरक्वेटेड
- 9. अनुरोध निरस्त कर दिया गया था: एसएसएल/टीएलएस सुरक्षित चैनल सैंडबॉक्स खाता नहीं बना सका
- 10. अनुरोध निरस्त कर दिया गया था: एसएसएल/टीएलएस सुरक्षित चैनल नहीं बना सका। सिस्टम.नेट। वेबएक्सप्शन
- 11. जांचें कि क्या एक टाइमआउट साफ़ कर दिया गया है?
- 12. एक्सकोड: बिल्ड चरण को अक्षम कर दिया गया है
- 13. टोस्ट को खारिज कर दिया गया है या नहीं
- 14. REKKit में RKResponseDescriptor को अस्वीकार कर दिया गया है
- 15. टीएफएस 2012 जांच कर रहा है कि क्या शाखा को विलय कर दिया गया है
- 16. त्रुटि: ऑब्जेक्ट हटा दिया गया है या अमान्य कर दिया गया है। (दायरे)
- 17. त्रुटि: पृष्ठ को नष्ट कर दिया गया है और अब
- 18. ChildFragmentManager java.lang.IleglegalStateException: गतिविधि को नष्ट कर दिया गया है
- 19. पथ तक पहुंच **** को अस्वीकार कर दिया गया है
- 20. विधि द्वारा दिया गया मान
- 21. क्या इन सदस्यों को अनिर्दिष्ट आदेश दिया गया है?
- 22. कैसे ऑब्जेक्ट को कचरा दिया गया है
- 23. हैश रॉकेट को हटा दिया गया है?
- 24. जावा में अंकगणित अपवाद फेंक दिया गया
- 25. एक्सएमएलबींस के बजाय अब क्या उपयोग करना है कि इसे सेवानिवृत्त कर दिया गया है?
- 26. सॉकेट कनेक्शन निरस्त किया गया था - CommunicationException
- 27. एपीआई यादृच्छिक कॉल विफल रहता है - अनुरोध निरस्त कर दिया गया था: एसएसएल/टीएलएस सुरक्षित चैनल नहीं बना सका
- 28. क्या RealmBaseAdapter realm-Java से हटा दिया गया है?
- 29. स्थानीयहोस्ट से कनेक्शन क्यों मना कर दिया गया है?
- 30. सत्र को अवैध कर दिया गया है क्योंकि उपयोगकर्ता ने पासवर्ड बदल दिया है -> कोई पासवर्ड नहीं बदला गया
@ रीमेस, तो वे स्ट्रिंग समाप्त करने को कैसे ट्रैक करते हैं? लंबाई का उपयोग करना? – Dewsworld
उस प्रश्न को नहीं देखा हालांकि पहले Google की खोज की गई थी। एक डुप्लिकेट हो सकता है! – Dewsworld
ड्यूजवर्ल्ड, यह एक सैद्धांतिक प्रश्न बताते हुए बंद करने के लिए लगभग एक मृत-प्रमाणित कारण है। एसओ आपको वास्तविक समस्याओं के लिए माना जाता है। – paxdiablo