去除或修剪字符串末尾的回车符

5

可能是重复问题:
如何在C#中去除字符串末尾的回车符和换行符?

我该如何去除字符串末尾的回车符呢? 我已经搜索了谷歌,但是找不到我需要的代码。

这是我的当前代码:

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

但是,所有旧字符的出现都会被替换掉。

我已经尝试过以下方法:

public string trim(string 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;

但是对我来说不起作用,可能是我漏掉了什么或者我的代码有问题。

我也尝试使用正则表达式,但是我无法得到我需要的结果。

我从Word文档中获取字符串,然后将其转移到另一个文档中。

我将非常感激任何帮助。谢谢。


@paxdiablo 我已经检查过可能的重复内容,但没有找到任何重复。至于链接,我已经检查过了,但对我来说没有用。也许我会尝试使用正则表达式进行实验,就像我在那个链接中读到的那样。 - ace
在我看来,这似乎是一个重复的问题,两个问题都涉及到C#,都试图从字符串末尾删除CR/LF。除非我漏掉了什么,否则这几乎是完全匹配的。 - paxdiablo
我也在想为什么会得到那种结果。我不确定我的代码中是否有地方导致了意外的结果,所以我尝试在修剪字符串后立即在控制台中打印它。但是,我再次得到了相同的结果。注意:我正在使用带有Office 2003的C# 2010。您可以查看此链接以查看实际输出:http://b.imagehost.org/0707/carriage_return.jpg - ace
2个回答

2

嗨,我在下面的链接中找到了一个解决方案,所以应该归功于那位作者。

示例

不过,我已经对其进行了定制,以增强其演示能力。

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));             
        }
    }
}

看这个。


我已经检查并在我的代码中使用了它。虽然它去掉了回车符,但是它删除了所有回车符的出现。我将尝试从那段代码进行实验。谢谢。 - ace

1

我已经尝试过那些链接,但在我的情况下它并不起作用。 - ace

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接