एक स्ट्रिंग में डबल कोट्स से बच जाएं


173

दोहरे उद्धरण इस तरह से बच सकते हैं:

string test = @"He said to me, ""Hello World"". How are you?";

लेकिन इसमें "स्ट्रिंग में चरित्र जोड़ना शामिल है । क्या दोहरे उद्धरण चिह्नों से बचने के लिए C # फ़ंक्शन या अन्य विधि है ताकि स्ट्रिंग में कोई परिवर्तन की आवश्यकता न हो?


5
आप इस तरह \ "हैलो वर्ल्ड \" का उपयोग कर सकते हैं
पंडियन

1
परिणामस्वरूप आप वास्तव में क्या चाहते हैं? शाब्दिक स्ट्रिंग में "" बन जाता है। ''
रोएल

C / C ++ के लिए एक समान प्रश्न (जैसा कि यह शीर्ष खोज इंजन हिट हो सकता है): मैं एक स्ट्रिंग शाब्दिक में दोहरे उद्धरण कैसे प्राप्त कर सकता हूं?
पीटर मोर्टेंसन

जवाबों:


226

नहीं।

या तो वर्बेटिम स्ट्रिंग शाब्दिक का उपयोग करें जैसा कि आपके पास है, या "बैकस्लैश का उपयोग करके बच जाएं ।

string test = "He said to me, \"Hello World\" . How are you?";

किसी भी मामले में स्ट्रिंग नहीं बदली गई है - इसमें एक ही बच " गया है। यह C # बताने का एक तरीका है कि चरित्र स्ट्रिंग का हिस्सा है न कि एक स्ट्रिंग टर्मिनेटर।


81

आप किसी भी तरह बैकस्लैश का उपयोग कर सकते हैं;

string str = "He said to me, \"Hello World\". How are you?";

यह प्रिंट करता है;

He said to me, "Hello World". How are you?

जो बिलकुल उसी तरह का प्रिंट है;

string str = @"He said to me, ""Hello World"". How are you?";

यहाँ एक है DEMO

" अभी भी आपके तार का हिस्सा है।

MSDN से Escape Sequencesऔर बाहर की जाँच करें String literals


18

C # में आप बैकस्लैश का उपयोग करके विशेष वर्णों को अपनी स्ट्रिंग में डाल सकते हैं। उदाहरण के लिए, ", आपको लिखने के लिए \" लिखने की आवश्यकता है। बहुत सारे वर्ण हैं जो आप बैकस्लैश का उपयोग करके लिखते हैं: बैकस्लैश एक संख्या के साथ:

  • \ 000 शून्य
  • \ 010 बैकस्पेस
  • \ 011 क्षैतिज टैब
  • \ 012 नई लाइन
  • \ 015 गाड़ी वापसी
  • \ 032 स्थानापन्न
  • \ 042 डबल उद्धरण
  • \ 047 एकल बोली
  • \ 134 बैकस्लैश
  • \ _ 140 कब्र का उच्चारण

Othe चरित्र के साथ बैकस्लैश

  • एक बेल (चेतावनी)
  • \ b बैकस्पेस
  • \ f फॉर्मफीड
  • \ n नई लाइन
  • \ r कैरिज वापसी
  • \ t क्षैतिज टैब
  • \ v कार्यक्षेत्र टैब
  • \ 'एकल उद्धरण चिह्न
  • \ "डबल उद्धरण चिह्न
  • \ Backslash
  • \? शाब्दिक प्रश्न चिह्न
  • ओक्टल अंकन में \ ooo ASCII वर्ण
  • हेक्साडेसिमल संकेतन में \ x hh ASCII वर्ण
  • हेक्साडेसिमल नोटेशन में \ x hhhh यूनिकोड का चरित्र यदि इस एस्केप सीक्वेंस का उपयोग वाइड-कैरेक्टर स्थिरांक या यूनिकोड स्ट्रिंग शाब्दिक में किया जाता है। उदाहरण के लिए, WCHAR f = L '\ x4e00' या WCHAR b [] = L "एक के लिए चीनी वर्ण \ x4e00 है।"

6

आप गलतफहमी से बच रहे हैं।

अतिरिक्त "अक्षर स्ट्रिंग शाब्दिक का हिस्सा हैं; उन्हें संकलक द्वारा एकल के रूप में व्याख्या की जाती है "

आपके स्ट्रिंग का वास्तविक मूल्य अभी भी है He said to me , "Hello World".How are you ?, जैसा कि आप देखेंगे यदि आप इसे रनटाइम पर प्रिंट करते हैं।


4

कृपया अपनी समस्या बताएं। तुम कहो:

लेकिन इसमें "स्ट्रिंग में वर्ण जोड़ना" शामिल है।

क्या समस्या है? आप टाइप नहीं कर सकते string foo = "Foo"bar"";, क्योंकि वह संकलन त्रुटि को आमंत्रित करेगा। के रूप में जोड़ने हिस्सा है, स्ट्रिंग आकार वाले शब्दों के सच नहीं है में:

@"""".Length == "\"".Length == 1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.