Удалить или обрезать возврат каретки в конце строки

Возможный дубликат:
Удаление возврата каретки и новой строки из конца строки в C #

Как удалить возврат каретки в конце строки. Я уже нашел это в Google, но не могу найти нужный мне код.

Это мой текущий код:

return s.Replace ("\ n", "") .Replace ("\ r", "") .Replace ("\ r \ n", "") .Trim ();

но, конечно, все вхождения старого символа будут заменены.

Я пробовал это:

общедоступная обрезка строки (строка s) {

string[] whiteSpace = {"\r", "\n", "\r\n"};

foreach(string ws in whiteSpace)
{
    if (s.EndsWith(ws))
    {
        s = s.Substring(0, s.Length - 1);
    }
}
return s;

}

но у меня не работает, возможно, я что-то пропустил или в моем коде что-то не так

Я также пробовал использовать регулярное выражение, но не могу получить то, что мне нужно.

Я получаю строку из текстового документа, затем она будет перенесена в другой документ.

Буду признателен за любую помощь.


person ace    schedule 14.12.2010    source источник
comment
@paxdiablo Я проверил возможные дубликаты, но не нашел дубликатов. А по поводу ссылок я проверял, но у меня это не сработало. Может быть, я попробую поэкспериментировать с регулярным выражением, которое я прочитал в этой ссылке.   -  person ace    schedule 14.12.2010
comment
Мне кажется, это обман, оба вопроса - C #, оба стремятся удалить CR / LF из конца строки. Если я чего-то не упускаю, это вполне точное совпадение.   -  person paxdiablo    schedule 14.12.2010
comment
Мне также интересно, почему я получаю такой результат. Я не уверен, что где-то в моем коде вызывает неожиданный результат, поэтому я пытаюсь распечатать его в консоли сразу после обрезки строки. Но опять же получаю тот же результат. Примечание. Я использую C # 2010 с Office 2003. Вы можете проверить эту ссылку, чтобы увидеть фактический результат: b.imagehost.org/0707/carriage_return.jpg   -  person ace    schedule 14.12.2010


Ответы (2)


См. Этот ответ: Удаление возврата каретки и новой строки из конца строки в c #

person zsalzbank    schedule 14.12.2010
comment
Я уже пробовал эти ссылки, но в моем случае это не работает. - person ace; 14.12.2010

Привет, я нашел решение по следующей ссылке. Так что заслуга должна принадлежать этому автору.

Пример

Однако я настроил его, чтобы повысить демонстрационные возможности.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            String s = "ABCDE\r\n" + "FGHIJ";
            MessageBox.Show(s);            
            MessageBox.Show(RemoveAndNewlineLineFeed(s));            
        }

        string RemoveAndNewlineLineFeed(string s)
        {
            String[] lf = { "\r", "\n" }; 
            return String.Join("",s.Split(lf,StringSplitOptions.RemoveEmptyEntries));             
        }
    }
}

Проверь это.

person JCTLK    schedule 14.12.2010
comment
Я уже проверял и использовал это в своем коде. Хотя он удаляет возврат каретки, но устраняет все случаи возврата каретки. Я попробую поэкспериментировать с этим кодом. Tnx - person ace; 14.12.2010