CodeGym /Java Blog /यादृच्छिक /जावा एस्केप वर्ण
John Squirrels
पातळी 41
San Francisco

जावा एस्केप वर्ण

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
हाय! मागील धड्यांमध्ये, आम्ही जावामधील स्ट्रिंग क्लासद्वारे दर्शविल्या जाणार्‍या मजकूर स्ट्रिंगशी आधीच परिचित झालो आहोत. तुम्हाला कदाचित आठवत असेल, स्ट्रिंग म्हणजे अक्षरांचा क्रम. ही अक्षरे कोणतीही अक्षरे, अंक, विरामचिन्हे इत्यादी असू शकतात. स्ट्रिंग तयार करताना मुख्य गोष्ट म्हणजे संपूर्ण क्रम अवतरण चिन्हांमध्ये बंद करणे आवश्यक आहे:

public class Main {
   public static void main(String[] args) {
       String alex = new String ("My name is Alex. I'm 20!");
   }
}
पण जर आपल्याला अशी स्ट्रिंग तयार करायची असेल ज्यामध्ये अवतरण चिन्हे असतील तर आपण काय करावे? उदाहरणार्थ, समजा आम्हाला तुमच्या आवडत्या पुस्तकाबद्दल जगाला सांगायचे आहे:

public class Main {
   public static void main(String[] args) {
       String myFavoriteBook = new String ("My favorite book is "Twilight" by Stephanie Meyer");
   }
}
असे दिसते की कंपाइलर कशाबद्दल नाखूष आहे! समस्या काय असू शकते असे तुम्हाला वाटते? आणि त्याचा अवतरण चिन्हांशी काय संबंध? खरं तर, हे सर्व खूप सोपे आहे. कंपायलर अवतरण चिन्हांचा अतिशय विशिष्ट पद्धतीने अर्थ लावतो, म्हणजे त्यामध्ये स्ट्रिंग गुंडाळल्या जाव्यात अशी अपेक्षा करतो. आणि प्रत्येक वेळी कंपाइलर पाहतो ", तो अपेक्षा करतो की अवतरण चिन्हानंतर दुसरे अवतरण चिन्ह येईल, आणि त्यांच्यामधील मजकूर हा कंपायलरने तयार केलेल्या स्ट्रिंगचा मजकूर आहे. आमच्या बाबतीत, अवतरण चिन्ह सुमारे आहे "ट्वायलाइट" हा शब्द इतर अवतरण चिन्हांच्या आत असतो. जेव्हा कंपायलर मजकूराच्या या तुकड्यावर पोहोचतो, तेव्हा त्याला काय करणे अपेक्षित आहे हे समजत नाही. अवतरण चिन्ह सूचित करते की एक स्ट्रिंग तयार करणे आवश्यक आहे. परंतु कंपाइलर तेच आहे आधीचकरत आहे येथे का आहे: सोप्या भाषेत सांगायचे तर, कंपाइलरने काय करणे अपेक्षित आहे याबद्दल गोंधळ होतो. "आणखी एक अवतरण चिन्ह? ही काही प्रकारची चूक आहे का? मी आधीच एक स्ट्रिंग तयार करत आहे! किंवा मी दुसरी तयार करावी? अर्घ!...:/" जेव्हा अवतरण चिन्ह कमांड असते तेव्हा आम्हाला कंपाइलरला कळवणे आवश्यक आहे ( "एक स्ट्रिंग तयार करा!") आणि जेव्हा ते फक्त एक वर्ण असेल ("कोटेशन चिन्हांसह "ट्वायलाइट" शब्द प्रदर्शित करा!"). हे करण्यासाठी, Java कॅरेक्टर एस्केपिंग वापरते . हे विशेष चिन्ह वापरून पूर्ण केले जाते: \ . या चिन्हाला सामान्यतः "बॅकस्लॅश" असे म्हणतात. जावामध्ये, "एस्केप्ड" करण्‍यासाठी कॅरेक्‍टरसह बॅकस्‍लॅश संयुक्‍त करण्‍यास नियंत्रण क्रम असे म्हणतात . उदाहरणार्थ, \"स्क्रीनवर अवतरण चिन्ह प्रदर्शित करण्यासाठी एक नियंत्रण क्रम आहे. तुमच्या कोडमध्ये ही रचना आढळल्यावर, कंपायलरला समजेल की हे फक्त एक अवतरण चिन्ह आहे जे स्क्रीनवर प्रदर्शित केले जावे. चला पुस्तकासह आमचा कोड बदलण्याचा प्रयत्न करूया:

public static void main(String[] args) {
       String myFavoriteBook = new String ("My favorite book is \"Twilight\" by Stephanie Meyer");
       System.out.println(myFavoriteBook);
   }
}
आम्ही आमच्या दोन "अंतर्गत" अवतरण चिन्हांपासून बचाव करण्यासाठी \ वापरले आहे. चला main() पद्धत चालवण्याचा प्रयत्न करूया... कन्सोल आउटपुट:
My favorite book is "Twilight" by Stephanie Meyer
उत्कृष्ट! आम्हाला पाहिजे तसे कोडने काम केले! अवतरण चिन्हे ही एकमेव पात्रे नाहीत ज्यातून आपल्याला सुटण्याची आवश्यकता असू शकते. समजा आम्हाला आमच्या कामाबद्दल कोणाला सांगायचे आहे:

public class Main {
   public static void main(String[] args) {
       String workFiles= new String ("My work files are in D:\Work Projects\java");
       System.out.println(workFiles);
   }
}
आणखी एक चूक! तुम्ही का अंदाज लावू शकता? पुन्हा एकदा, कंपाइलरला काय करावे हे समजत नाही. शेवटी, कंपाइलरला कंट्रोल सीक्वेन्स व्यतिरिक्त इतर काहीही माहित नाही ! बॅकस्लॅशच्या पाठोपाठ एका विशिष्ट वर्णाची अपेक्षा केली जाते की त्याचा कसा तरी विशिष्ट पद्धतीने (जसे की अवतरण चिन्ह) अर्थ लावला पाहिजे. परंतु, या प्रकरणात, सामान्य अक्षरांनंतर \ आहे. त्यामुळे कंपाइलर पुन्हा गोंधळात पडला आहे. आपण काय केले पाहिजे? अगदी पूर्वीसारखीच गोष्ट: आम्ही फक्त आमच्या \ मध्ये आणखी एक जोडू !

public class Main {

   public static void main(String[] args) {

       String workFiles= new String ("My work files are in D:\\Work Projects\\java");
       System.out.println(workFiles);

   }
}
आम्हाला काय मिळते ते पाहू: कन्सोल आउटपुट:
My work files are in D:\Work Projects\java
उत्कृष्ट! कंपायलर ताबडतोब ठरवतो की \ हे सामान्य वर्ण आहेत जे बाकीच्या सोबत प्रदर्शित केले पाहिजेत. Java मध्ये बरेच नियंत्रण क्रम आहेत. येथे संपूर्ण यादी आहे:
  • \t - टॅब.
  • \b - बॅकस्पेस (मजकूरात एक पाऊल मागे जाणे किंवा एकल वर्ण हटवणे).
  • \n - नवीन ओळ.
  • \r - कॅरेज रिटर्न. ()
  • \f - फॉर्म फीड.
  • \' एकल कोट.
  • \" दुहेरी कोट.
  • \\ बॅकस्लॅश.
अशाप्रकारे, जर कंपाइलरला मजकुरात \n आढळले, तर हे समजते की हे कन्सोलवर प्रदर्शित करण्यासाठी फक्त एक चिन्ह आणि एक अक्षर नाही, तर "नवीन ओळीवर हलवा!" यासाठी एक विशेष आदेश आहे. उदाहरणार्थ, कवितेचा काही भाग प्रदर्शित करायचा असल्यास हे उपयुक्त ठरू शकते:

public class Main {
   public static void main(String[] args) {
       String byron = new String ("She walks in beauty, like the night, \nOf cloudless climes and starry skies\nAnd all that's best of dark and bright\nMeet in her aspect and her eyes...");
       System.out.println(byron);
   }
}
आम्हाला जे मिळते ते येथे आहे: कन्सोल आउटपुट:
She walks in beauty, like the night, 
Of cloudless climes and starry skies 
And all that's best of dark and bright 
Meet in her aspect and her eyes...
आम्हाला जे हवे होते तेच! कंपायलरने एस्केप सीक्वेन्स ओळखला आणि 4 ओळींवर कवितेचा उतारा आउटपुट केला.

युनिकोड वर्ण Escape

एस्केप कॅरेक्टर्सच्या संदर्भात तुम्हाला आणखी एक महत्त्वाचा विषय माहित असणे आवश्यक आहे तो म्हणजे युनिकोड. युनिकोड हे एक मानक वर्ण एन्कोडिंग आहे ज्यामध्ये जगातील जवळजवळ प्रत्येक लिखित भाषेची चिन्हे समाविष्ट आहेत. दुसऱ्या शब्दांत, ही विशेष कोडची सूची आहे जी कोणत्याही भाषेतील जवळजवळ प्रत्येक वर्ण दर्शवते! स्वाभाविकच, ही एक खूप मोठी यादी आहे आणि कोणीही ते मनापासून शिकत नाही :) ती कोठून आली आणि ती का आवश्यक आहे हे जाणून घ्यायचे असल्यास, हा माहितीपूर्ण लेख वाचा: https://docs.oracle.com/javase/tutorial/ i18n/text/unicode.html सर्व युनिकोड कॅरेक्टर कोडमध्ये " u+<हेक्साडेसिमल अंक>". उदाहरणार्थ, सुप्रसिद्ध कॉपीराइट चिन्ह u00A9 द्वारे दर्शविले जाते. त्यामुळे, जावामध्ये मजकूरासह काम करताना तुम्हाला हे वर्ण वापरण्याची आवश्यकता असल्यास, तुम्ही ते तुमच्या मजकुरातून सुटू शकता! उदाहरणार्थ, आम्हाला हवे आहे CodeGym कडे या धड्याचा कॉपीराइट आहे हे सर्वांना कळवण्यासाठी:

public class Main {
   public static void main(String[] args) {
       System.out.println("\"Escaping characters\", \u00A9 2019 CodeGym");
   }
}
कन्सोल आउटपुट:
"Escaping characters", © 2019 CodeGym
छान, हे सर्व घडले! पण हे केवळ विशेष चिन्हांबद्दल नाही! वेगवेगळ्या भाषांमध्ये एकाच वेळी लिहिलेला मजकूर एन्कोड करण्यासाठी तुम्ही युनिकोड आणि एस्केप कॅरेक्टर वापरू शकता. आणि एकाच भाषेच्या विविध बोलींमध्ये लिहिलेला मजकूर!

public class Main {
   public static void main(String[] args) {

       System.out.println("\u004d\u0061\u006f \u005a\u0065\u0064\u006f\u006e\u0067 " + 

               "\u0028\u0054\u0072\u0061\u0064\u0069\u0074\u0069\u006f\u006e\u0061\u006c " +

               "\u0043\u0068\u0069\u006e\u0065\u0073\u0065\u003a \u6bdb\u6fa4\u6771\u002c " +

               "\u0053\u0069\u006d\u0070\u006c\u0069\u0066\u0069\u0065\u0064 " +

               "\u0043\u0068\u0069\u006e\u0065\u0073\u0065\u003a \u6bdb\u6cfd\u4e1c\u002c " +

               "\u0050\u0069\u006e\u0079\u0069\u006e\u003a \u004d\u00e1\u006f " +

               "\u005a\u00e9\u0064\u014d\u006e\u0067\u0029 \u0077\u0061\u0073 \u0061 " +

               "\u0032\u0030\u0074\u0068\u002d\u0063\u0065\u006e\u0074\u0075\u0072\u0079 " +

               "\u0043\u0068\u0069\u006e\u0065\u0073\u0065 " +

                "\u0073\u0074\u0061\u0074\u0065\u0073\u006d\u0061\u006e\u002c " +

               "\u0070\u006f\u006c\u0069\u0074\u0069\u0063\u0069\u0061\u006e\u002c " +

               "\u0061\u006e\u0064 \u0074\u0068\u0065 \u0063\u0068\u0069\u0065\u0066 " +

               "\u0074\u0068\u0065\u006f\u0072\u0065\u0074\u0069\u0063\u0069\u0061\u006e " +

               "\u006f\u0066 \u004d\u0061\u006f\u0069\u0073\u006d\u002e");
   }
}
कन्सोल आउटपुट:
Mao Zedong (Traditional Chinese: 毛澤東, Simplified Chinese: 毛泽东, Pinyin: Máo Zédōng) was a 20th-century Chinese statesman, politician, and the chief theoretician of Maoism.
या उदाहरणात, आम्ही इंग्रजी आणि तीन(!) विविध प्रकारचे चिनी वर्ण - पारंपारिक, सरलीकृत आणि लॅटिन (पिनयिन) असलेली स्ट्रिंग तयार करण्यासाठी अक्षर कोड वापरले. आणि ते बेरीज करते! तुमच्या कामात हे उत्तम साधन वापरण्यासाठी आता तुम्हाला कॅरेक्टर एस्केपिंगबद्दल पुरेशी माहिती आहे :) तुम्ही जे शिकलात ते बळकट करण्यासाठी, आम्ही तुम्हाला आमच्या Java कोर्समधून व्हिडिओ धडा पाहण्याचा सल्ला देतो.
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION