Подтвердить что ты не робот

Как удалить "\ r\n" из строки в С#? Могу ли я использовать regEx?

Я пытаюсь сохранить строку из текстового поля ASP.NET. Мне нужно вырезать каналы линии возврата каретки, а затем разбить все оставшиеся в массив строк из 50 символов.

У меня это до сих пор

var commentTxt = new string[] { };
var cmtTb = GridView1.Rows[rowIndex].FindControl("txtComments") as TextBox;
if (cmtTb != null)
  commentTxt = cmtTb.Text.Length > 50
      ? new[] {cmtTb.Text.Substring(0, 50), cmtTb.Text.Substring(51)}
      : new[] {cmtTb.Text};

Он работает нормально, но я не сбрасываю символы CrLf. Как это сделать правильно?

Спасибо, ~ ck в Сан-Диего

4b9b3361

Ответ 1

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

 myString = myString.Replace("\r\n", string.Empty);

Ответ 2

Функция

.Trim() сделает всю работу за вас!

Я пробовал код выше, но после функции "trim", и я заметил его все "чистое" даже до того, как он достигнет кода замены!

String input:       "This is an example string.\r\n\r\n"
Trim method result: "This is an example string."

Источник: http://www.dotnetperls.com/trim

Ответ 3

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

var oldString = "the quick brown\rfox jumped over\nthe box\r\nand landed on some rocks.";
var newString = string.Join(" ", Regex.Split(oldString, @"(?:\r\n|\n|\r)"));
Console.Write(newString);

// prints:
// the quick brown fox jumped over the box and landed on some rocks.

Ответ 4

Более чистый код для этого:

yourstring = yourstring.Replace(System.Environment.NewLine, string.Empty);

Ответ 5

Попробуйте следующее:

private void txtEntry_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            string trimText;

            trimText = this.txtEntry.Text.Replace("\r\n", "").ToString();
            this.txtEntry.Text = trimText;
            btnEnter.PerformClick();
        }
    }

Ответ 6

Предполагая, что вы хотите заменить символы новой строки чем-то таким, чтобы что-то вроде этого:

the quick brown fox\r\n
jumped over the lazy dog\r\n

не заканчивается так:

the quick brown foxjumped over the lazy dog

Я бы сделал что-то вроде этого:

string[] SplitIntoChunks(string text, int size)
{
    string[] chunk = new string[(text.Length / size) + 1];
    int chunkIdx = 0;
    for (int offset = 0; offset < text.Length; offset += size)
    {
        chunk[chunkIdx++] = text.Substring(offset, size);
    }
    return chunk;
}    

string[] GetComments()
{
    var cmtTb = GridView1.Rows[rowIndex].FindControl("txtComments") as TextBox; 
    if (cmtTb == null)
    {
        return new string[] {};
    }

    // I assume you don't want to run the text of the two lines together?
    var text = cmtTb.Text.Replace(Environment.Newline, " ");
    return SplitIntoChunks(text, 50);    
}

Извиняюсь, если синтаксис не совершенен; Сейчас я не на машине с С#.

Ответ 7

Вот идеальный метод

Обратите внимание, что Environment.NewLine работает на платформах Microsoft.

В дополнение к выше вы должны добавить \r и \n в отдельную функцию!

Вот код, который будет поддерживать, если вы набираете Linux, Windows или Mac

            var stringTest = "\r Test\nThe Quick\r\n brown fox";
            Console.WriteLine("Original is:");
            Console.WriteLine(stringTest);
            Console.WriteLine("-------------");
            stringTest = stringTest.Trim().Replace("\r", string.Empty);
            stringTest = stringTest.Trim().Replace("\n", string.Empty);
            stringTest = stringTest.Replace(Environment.NewLine, string.Empty);
            Console.WriteLine("Output is : ");
            Console.WriteLine(stringTest);
            Console.ReadLine();

Ответ 8

var result = JObject.Parse(json.Replace(System.Environment.NewLine, string.Empty));