2011-12-05 8 views
23
स्ट्रिंग ग

चार मैं निम्नलिखित कोडनिकालें '' से #

string line = ""; 

while ((line = stringReader.ReadLine()) != null) 
{ 
    // split the lines 
    for (int c = 0; c < line.Length; c++) 
    { 
     if (line[c] == ',' && line[c - 1] == '"' && line[c + 1] == '"') 
     { 
      line.Trim(new char[] {'\\'}); // <------ 
      lineBreakOne = line.Substring(1, c - 2); 
      lineBreakTwo = line.Substring(c + 2, line.Length - 2); 
     } 
    } 
} 

मैं लाइन मैं के बारे में सोच रहा हूँ के लिए एक टिप्पणी शुद्ध जोड़ लिया है की है। मैं स्ट्रिंग से सभी '\' अक्षर को हटाना चाहता हूं। क्या यह सही तरीका है? मैं काम नहीं करता सभी अभी भी स्ट्रिंग में हैं।

+0

' ट्रिम समाप्त। यह उन्हें 'trims' बंद कर दिया। @ User978511 राज्यों के रूप में, आप 'बदलें (" \\ "," ") 'का उपयोग कर सकते हैं। (एफवाईआई, @ चरित्र का उसका मतलब है "बचने के नियमों को लागू किए बिना, इस स्ट्रिंग को शाब्दिक रूप से लें") – JohnL

+0

मेरे लिए नीचे दिए गए कोई भी समाधान मेरे लिए काम नहीं करता है ... – rsy

+0

Regex.Unescape() – Alexander

उत्तर

75

आप इस्तेमाल कर सकते हैं:

line.Replace(@"\", ""); 

या

line.Replace(@"\", string.Empty); 
+2

ऐसा इसलिए है क्योंकि प्रतिस्थापन स्ट्रिंग को स्वयं नहीं बदलता है , यह बदली हुई स्ट्रिंग देता है। तो आपको मेरे जवाब की तरह करना है, और 'line = line.Rep ...' –

+1

लिखना ये स्लेश नहीं हैं। ये बचने वाले पात्र हैं। उद्धरण से बचने के लिए उनका उपयोग यहां किया जाता है। डबल कोट्स के बजाय सिंगल कोट का उपयोग करने पर विचार करें। तब आपको स्लेश की आवश्यकता नहीं होगी। –

+1

@PoiXen - आपके द्वारा पोस्ट की गई स्ट्रिंग में, \ \ "एक बचने का अनुक्रम है जो स्ट्रिंग में दिखाई देता है। इसमें कोई पीछे स्लैश वर्ण नहीं हैं। – Oded

4

क्यों बस इस नहीं?

resultString = Regex.Replace(subjectString, @"\\", ""); 
+1

मुझे लगता है कि या तो "\\" या @ " \ "है ना? –

+1

@ बालीसी असल में नहीं। एक ** "\" ** आपको पार्सिंग मिलती है "\" - पैटर्न के अंत में अवैध \। .NET 3.5 – FailedDev

4

एक स्ट्रिंग से

String sOld = ...; 
String sNew =  sOld.Replace("\\", String.Empty); 
3

का उपयोग कर सभी को दूर करने का प्रयास करें '\', बस निम्न कार्य करें:

myString = myString.Replace("\\", ""); 
8

आप String.Replace उपयोग कर सकते हैं जो मूल रूप से सभी घटनाओं को हटा

line.Replace(@"\", ""); 
2

Trim केवल शुरुआत और स्ट्रिंग के अंत में वर्ण हटा देता है, यही कारण है कि आपका कोड काफी काम नहीं करता है। आप Replace बजाय का उपयोग करना चाहिए:

line.Replace(@"\", string.Empty); 
4

प्रयास करें (नए चार [] { '\\'}) `शुरू से ही सभी \ वर्ण निकाल देंगे या बदलने के लिए

string result = line.Replace("\\",""); 
2
  while ((line = stringReader.ReadLine()) != null) 
     { 
      // split the lines 
      for (int c = 0; c < line.Length; c++) 
      { 
       line = line.Replace("\\", ""); 
       lineBreakOne = line.Substring(1, c - 2); 
       lineBreakTwo = line.Substring(c + 2, line.Length - 2); 
      } 
     }