2010-08-31 17 views
37

मैं सोच रहा था कि जावा में एक समान हेक्स (\ x) से बचने की तरह है जैसे सी ++ में है। उदाहरण के लिए: x जावा में एस्केप?

 
char helloworld[] = "\x48\x45\x4C\x4C\x4F\x20\x57\x47\x52\x4C\x44"; 
printf("%s", helloworld); 

इसमें अब तक दिखाई देता है क्या से कोई हेक्स (\ एक्स) जावा में भागने है। क्या कोई विकल्प है जो हेक्स संख्याओं के समूह को एक साथ जोड़कर उपयोग करना आसान है?

उत्तर

47

जावा में स्ट्रिंग्स हमेशा यूटीएफ -16 में एन्कोड किए जाते हैं, इसलिए यह यूनिकोड से बचने का उपयोग करता है: \u0048। अस्थायी पात्रों का भी समर्थन किया जाता है: \110

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद इस्तेमाल किया जाना चाहिए था। यह पूरी तरह से काम करता है! – David

+0

@ डेविड: 'चुने गए उत्तर' चिह्न को देखना न भूलें :) – helios

3

ध्यान दें कि ऑक्टल यूनिकोड से बचने के लिए बहुत जल्दी पार्स किया जाता है।
यह जब

String s = "text\u000d\u000a"; 

एक संकलक त्रुटि
का कारण बनता है एक आश्चर्य के रूप में आ सकता है क्योंकि आप "text\015\012" या "text\r\n"

+2

-1: स्ट्रिंग अक्षर में अस्थायी भागने की अनुमति है और जैसा कि आप सुझाव देते हैं, उतनी जल्दी पार्स नहीं किया जाता है। उपरोक्त कोड स्निपेट अपेक्षित के रूप में काम करता है। 3.10.6 देखें। Http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html –

+0

@adrian में आप चरित्र और स्ट्रिंग अक्षरों के लिए अनुक्रम से बचें - आप सही हैं, मुझे ऑक्टल से बच निकला और यूनिकोड गलत से बच निकला चारों ओर रास्ता - मैं जवाब ठीक कर दूंगा (यदि संभव हो)। – tschodt

+0

ठीक है, और मैं अपना डाउनवोट हटा दूंगा –

संबंधित मुद्दे