System.out.println("\1");
मैंने सोचा कि यह गैर-मान्यता प्राप्त भागने अनुक्रम की वजह से संकलित नहीं हुआ है।इस जावा स्ट्रिंग में " 1" क्या दर्शाता है?
"\1"
वास्तव में क्या प्रतिनिधित्व करता है?
System.out.println("\1");
मैंने सोचा कि यह गैर-मान्यता प्राप्त भागने अनुक्रम की वजह से संकलित नहीं हुआ है।इस जावा स्ट्रिंग में " 1" क्या दर्शाता है?
"\1"
वास्तव में क्या प्रतिनिधित्व करता है?
यह एक ऑक्टल एस्केप अनुक्रम है, जैसा कि जेएलएस के section 3.10.6 में सूचीबद्ध है। उदाहरण के लिए:
String x = "\16";
बराबर है करने के लिए:
String x = "\u000E";
(ऑक्टल 16 के रूप में = हेक्स ई)
तो \1
हमें U + 0001, चरित्र "शीर्षक की शुरुआत"।
मेरे अनुभव में जावा में अस्थायी बचने के अनुक्रमों का बहुत ही कम उपयोग किया जाता है, और मैं व्यक्तिगत रूप से उनसे बच सकता हूं जहां संभव हो। जब मैं एक संख्यात्मक भागने अनुक्रम का उपयोग कर एक चरित्र निर्दिष्ट करना चाहता हूं, तो मैं हमेशा \uxxxx
का उपयोग करता हूं।
जावा में यह मूल्य
\u0001
जावा उन भाषाओं कि आप दरियादिली से कसम खाता हूँ जब आप "आकस्मिक" बग यह है हिट बनाने में से एक है पीछा कर रहा है। क्या आप जानते थे कि जावा स्रोत कोड में * अक्षरशः * चरित्र होने के लिए वर्ण से निकलता है? वैसे यह एक समस्या नहीं है जब तक कि आप कैरिज रिटर्न को आजमाएं और बचें ... तब जावा सोचता है कि आप अपने स्रोत कोड में एक नई लाइन फंस गए हैं जब आप वास्तव में एक नहीं चाहते थे। –
@PP .: यह इस बात पर निर्भर करता है कि आप किस चरित्र से बचते हैं। उदाहरण के लिए, '// यह \ n ठीक है' की एक टिप्पणी ठीक है, लेकिन '// यह \ u000a नहीं है 'संकलित नहीं होगा। –
आपकी दूसरी कोड लाइन संकलित नहीं होती है (कम से कम मेरी मशीन पर): * "स्ट्रिंग शाब्दिक डबल-कोट द्वारा ठीक से बंद नहीं है" *। – sp00m