Jawaban:
Ini akan memotong semua kombinasi pengembalian kereta dan baris baru dari akhir s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
Sunting : Atau seperti yang ditunjukkan JP dengan ramah, Anda dapat mengejanya dengan lebih ringkas sebagai:
s = s.TrimEnd('\r', '\n');
s = s.TrimEnd()
- seperti yang dikatakan dokumen: Jika trimChars adalah null atau array kosong, karakter spasi kosong Unicode akan dihapus. - lihat String.TrimEnd
'\r'
dan '\n'
dan tidak ada yang lain, bukan karakter spasi ' '
misalnya.
Jika Anda menggunakan banyak platform, Anda lebih aman menggunakan metode ini.
value.TrimEnd(System.Environment.NewLine.ToCharArray());
Ini akan menjelaskan baris baru yang berbeda dan karakter carriage-return.
tst.TrimEnd( '\r', '\n' )
- cukup "aman" dalam prakteknya karena EOL mayor [saat ini] hanyalah kombinasi yang berbeda dari \r
dan \n
, tetapi alexw adalah jawaban yang "benar". Biarkan CLR memberi tahu Anda karakter apa yang ada di baris baru platform ini. EOL tidak selalu merupakan kombinasi 0D dan 0A
Environment.NewLine
tetapi tampaknya tidak menangani contoh di mana \r
ada tanpa \n
. TrimEnd('r','\n')
tampaknya lebih dapat diandalkan dalam kasus ini.
String temp = s.Replace("\r\n","").Trim();
s
menjadi string asli. (Catatan ibu kota)
replace()
kemudian trim()
tidak berlebihan ketika TrimEnd()
dapat melakukan pekerjaan itu sendiri, atau saya kehilangan sesuatu?
s.TrimEnd();
Di atas adalah semua yang saya butuhkan untuk menghapus '\ r \ n' dari ujung string saya.
Jawaban yang disukai tampaknya salah bagi saya. Pertama, itu tidak bekerja ketika saya mencoba, kedua, jika itu berhasil aku akan berharap bahwa s.TrimEnd ( '\ r', '\ n') hanya akan menghapus baik sebuah '\ r' atau '\ n' , jadi saya harus menjalankannya di atas string saya dua kali - sekali untuk saat '\ n' berada di akhir dan kedua kalinya saat '\ r' berada di akhir (sekarang setelah '\ n' dilepas) .
Jika selalu ada satu CRLF, maka:
myString = myString.Substring(0, myString.Length - 2);
Jika mungkin memilikinya atau mungkin tidak, maka:
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
Keduanya (menurut desain), akan menghapus paling banyak satu CRLF. Cache regex untuk kinerja.
Ini terlalu mudah - bagi saya, saya memfilter item email tertentu. Saya sedang menulis filter sampah email khusus saya sendiri. Dengan \ r dan / atau \ n dalam string itu menghapus semua item alih-alih memfilter.
Jadi, saya baru saja melakukan filter = filter.Remove ('\ n') dan filter = filter.Remove ('\ r'). Saya membuat filter saya sedemikian rupa sehingga pengguna akhir dapat menggunakan Notepad untuk mengedit file secara langsung sehingga tidak ada yang tahu di mana karakter ini dapat menyematkan diri - bisa jadi selain di awal atau akhir string. Jadi menghapus semuanya berarti melakukannya.
Entri lainnya semuanya berfungsi tetapi Hapus mungkin yang paling mudah?
Saya belajar lebih banyak tentang Regex dari posting ini - pekerjaan yang cukup keren dengan penggunaannya di sini.
filter = filter.Remove('\n').Remove('\r');
Saya menggunakan banyak level penghapusan
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, "");
dan sekarang kita memiliki satu baris bersih
Inilah yang saya harus bekerja untuk saya.
s.Replace("\r","").Replace("\n","")