जवाबों:
यह गाड़ी के रिटर्न और नईलाइंस के किसी भी संयोजन को समाप्त कर देगा s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
संपादित करें : या जेपी के रूप में कृपया बताते हैं, आप इस रूप में अधिक संक्षिप्त रूप से जादू कर सकते हैं:
s = s.TrimEnd('\r', '\n');
s = s.TrimEnd()
- जैसा कि डॉक्स कहते हैं: यदि ट्रिमचर्स शून्य या खाली सरणी है, तो इसके बजाय यूनिकोड व्हाइट-स्पेस वर्ण हटा दिए जाते हैं। - स्ट्रिंग
'\r'
और '\n'
कुछ नहीं के लिए कहा , ' '
उदाहरण के लिए अंतरिक्ष चरित्र नहीं ।
यह काम करना चाहिए ...
var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd( '\r', '\n' );
यदि आप कई प्लेटफार्मों का उपयोग कर रहे हैं तो आप इस पद्धति का उपयोग करके सुरक्षित हैं।
value.TrimEnd(System.Environment.NewLine.ToCharArray());
इसमें अलग-अलग न्यूलाइन और कैरिज-रिटर्न कैरेक्टर होंगे।
tst.TrimEnd( '\r', '\n' )
- यथोचित रूप से "सुरक्षित" है क्योंकि प्रमुख ईओएल हैं [वर्तमान में] बस अलग-अलग कंघी \r
और \n
, लेकिन एलेक्सव का "सही" जवाब है। CLR आपको बताता है कि इस प्लेटफॉर्म की न्यूलाइन में कौन से चार्ट हैं। EOL हमेशा 0Ds और 0As का कॉम्बो नहीं किया गया है
Environment.NewLine
करता था, लेकिन यह ऐसे उदाहरणों को संभालने के लिए नहीं लगता \r
था, जहां मौजूद नहीं था \n
। TrimEnd('r','\n')
इस मामले में अधिक विश्वसनीय लगता है।
String temp = s.Replace("\r\n","").Trim();
s
मूल तार होना। (नोट राजधानियाँ)
replace()
तब trim()
ओवरकिल नहीं है जब TrimEnd()
काम अकेले कर सकता है, या क्या मैं कुछ याद कर रहा हूं?
s.TrimEnd();
उपरोक्त सभी को अपनी स्ट्रिंग के अंत से '\ r \ n' निकालने की आवश्यकता है।
उलटा जवाब मुझे गलत लगता है। सबसे पहले, यह तब काम नहीं करता था जब मैंने कोशिश की थी, दूसरी बात, अगर यह काम करता है तो मुझे उम्मीद है कि s.TrimEnd ('\ r', '\ n') केवल या तो '\ r' या '\ n' को हटा देगा , इसलिए मुझे इसे अपने स्ट्रिंग पर दो बार चलाना होगा - एक बार जब '\ n' अंत में था और दूसरी बार जब '\ r' अंत में था (अब '\ n' हटा दिया गया था) ।
यदि हमेशा एक ही CRLF होता है, तो:
myString = myString.Substring(0, myString.Length - 2);
यदि यह हो सकता है या नहीं, तो:
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
ये दोनों (डिज़ाइन के अनुसार), अधिकांश एकल CRLF को हटा देंगे। प्रदर्शन के लिए regex कैश करें।
यह बहुत आसान था - मेरे लिए मैं कुछ ईमेल आइटम फ़िल्टर कर रहा हूं। मैं अपना खुद का कस्टम ईमेल जंक फिल्टर लिख रहा हूं। स्ट्रिंग में \ r और / या \ n के साथ यह फ़िल्टरिंग के बजाय सभी आइटम मिटा रहा था।
तो, मैंने सिर्फ फ़िल्टर = फ़िल्टर किया। Rove ('\ n') और फ़िल्टर = filter .emove ('\ r')। मैं अपना फ़िल्टर ऐसा बना रहा हूं कि एक अंतिम उपयोगकर्ता नोटपैड का उपयोग सीधे फाइल को संपादित करने के लिए कर सकता है, इसलिए कोई भी यह नहीं बता रहा है कि ये वर्ण खुद को कहां एम्बेड कर सकते हैं - स्ट्रिंग के शुरू या अंत में अन्य हो सकता है। इसलिए इन सबको हटाकर वह ऐसा करता है।
अन्य प्रविष्टियाँ सभी काम करती हैं लेकिन निकालें सबसे आसान हो सकती हैं?
मैंने इस पोस्ट से रेगेक्स के बारे में बहुत कुछ सीखा - यहां इसके उपयोग के साथ बहुत अच्छा काम।
filter = filter.Remove('\n').Remove('\r');
मैं मिटाने के स्तर का बहुत उपयोग करता हूं
String donen = "lots of stupid whitespaces and new lines and others..."
//Remove multilines
donen = Regex.Replace(donen, @"^\s+$[\r\n]*", "", RegexOptions.Multiline);
//remove multi whitespaces
RegexOptions options = RegexOptions.None;
Regex regex = new Regex("[ ]{2,}", options);
donen = regex.Replace(donen, " ");
//remove tabs
char tab = '\u0009';
donen = donen.Replace(tab.ToString(), "");
//remove endoffile newlines
donen = donen.TrimEnd('\r', '\n');
//to be sure erase new lines again from another perspective
donen.Replace(Environment.NewLine, "");
और अब हमारे पास एक साफ पंक्ति है
यही मेरे लिए काम कर गया।
s.Replace("\r","").Replace("\n","")