相关疑难解决方法(0)

如何消除字符串中的所有换行符?

我需要摆脱出现在我的字符串中的所有换行符(来自db).我使用以下代码执行此操作:

value.Replace("\r\n", "").Replace("\n", "").Replace("\r", "")
Run Code Online (Sandbox Code Playgroud)

我可以看到,至少有一个角色表现得像行结束,幸存下来.字符代码是8232.

这对我来说很蹩脚,但我必须说这是我第一次有幸看到这个角色.显而易见,我可以直接替换这个字符,但我正在考虑将我当前的方法(基于替换"\ r"和"\n"的组合)扩展到更加可靠的东西,因此它不仅包括' 8232'char,还有其他所有人都没有找到我.

对于这样的问题,你有防弹方法吗?

编辑#1:

在我看来,有几种可能的解决方案:

  1. 使用Regex.Replace
  2. 删除所有字符,如果它是IsSeparator或IsControl
  3. 如果是IsWhiteSpace,请替换为""
  4. 创建所有可能行结尾的列表("\ r \n","\ r","\n",LF,VT,FF,CR,CR + LF,NEL,LS,PS)并将其替换为空串.这是很多替代品.

我会说最好的结果将是应用第一和第四种方法之后,但我无法确定哪种方法会更快.您认为哪一个是最完整的?

编辑#2

我在下面发了anwer.

.net c# string newline

43
推荐指数
5
解决办法
5万
查看次数

在C#中从String中删除Newlines的最快方法是什么?

我有一个字符串,里面有一些Environment.Newline.我想从字符串中删除它们,而是用逗号替换Newline.

在您看来,使用C#.NET 2.0的最佳方法是什么?

.net c# string replace

12
推荐指数
2
解决办法
8535
查看次数

用<p>段和<br />标记替换换行符

所以我知道如何在C#代码中替换换行符.但是替换<br />标签的换行并不总是非常正确.

所以我想知道其他人使用什么样的策略?我猜的正确方法是使用<p>标签和<br />标签.

以下是我想得到的结果的一些例子.

如果没有换行符,我希望文本包含在<p>标签中.

此文本不包含换行符

<p>This text contains no newlines</p>   
Run Code Online (Sandbox Code Playgroud)

如果文本包含换行符,我希望将其替换为<br />标记并包含在<p>标记中.

此文本包含
1个换行符

<p>This text contains<br /> 1 newline.</p>
Run Code Online (Sandbox Code Playgroud)

如果有"双重换行符",我希望将该块包装在<p>标签中.

这是一个末尾带有"双重换行符"的文本.

这是一个最后没有换行的文本.

<p>This a text with 'double newlines at the end.</p>
<p>This is a text with no newline at the end.</p>
Run Code Online (Sandbox Code Playgroud)

我可以写更多的例子/组合,但我想我的意思有点清楚.

提前致谢.

.net html c# string newline

10
推荐指数
2
解决办法
9104
查看次数

在ASP.NET MVC中显示文本区域中的新行

我目前正在使用ASP.NET MVC创建一个应用程序.我在textarea中有一些用户输入,我想用<br />而不是换行显示这个文本.在PHP中有一个名为nl2br的函数,它就是这样做的.我在网上搜索了ASP.NET/C#中的等价物,但没有找到适合我的解决方案.

第一个就是这个(对我没有任何意义,评论只是印在没有新线的情况下):

<%
    string comment = Html.Encode(Model.Comment);
    comment.Replace("\r\n", "<br />\r\n");
%>
<%= comment %>
Run Code Online (Sandbox Code Playgroud)

我找到的第二个是这个(Visual Studio告诉我VbCrLf在这个上下文中不可用 - 我在视图和控制器中尝试过):

<%
    string comment = Html.Encode(Model.Comment);
    comment.Replace(VbCrLf, "<br />");
%>
<%= comment %>
Run Code Online (Sandbox Code Playgroud)

c# string asp.net-mvc text

9
推荐指数
1
解决办法
2万
查看次数

C#从Stream中删除额外的回车符

我正在以流的形式读取文件:Stream fin = File.OpenRead(FilePath); 有什么方法可以找到并删除该文件流中的所有回车符?

编辑:目标是删除单个回车\r并让回车"\r\n"保持完整的换行.

示例文件:

The key backed up in this file is:\r
\r\n
pub   2048R/65079BB4 2011-08-01\r
\r\n
      Key fingerprint = 2342334234\r
\r\n
uid                  test\r
\r\n
sub   2048R/0B917D1C 2011-08-01\r
Run Code Online (Sandbox Code Playgroud)

结果应如下所示:

The key backed up in this file is:
\r\n
pub   2048R/65079BB4 2011-08-01
\r\n
      Key fingerprint = 2342334234
\r\n
uid                  test
\r\n
sub   2048R/0B917D1C 2011-08-01
Run Code Online (Sandbox Code Playgroud)

编辑2:最终的解决方案是什么工作看起来像这样:

    static private Stream RemoveExtraCarriageReturns(Stream streamIn)
    {
        StreamReader reader = new StreamReader(streamIn);
        string key = reader.ReadToEnd();
        string final = …
Run Code Online (Sandbox Code Playgroud)

c# stream

5
推荐指数
1
解决办法
9425
查看次数

循环添加到 StringBuilder 的字符串

我有以下代码:

StringBuilder sb = new StringBuilder();
sb.Append("Ola");
sb.Append("Jola");
sb.Append("Zosia");
Run Code Online (Sandbox Code Playgroud)

我可以使用, 或迭代StringBuilder对象吗?forforeach

我可以显示其中的一个元素吗?例如 Console.WriteLine(sb[0]);不起作用。

c# stringbuilder

5
推荐指数
1
解决办法
2万
查看次数

比较 C# 中包含格式的字符串

我正在开发一个函数,它给出了一些设置 - 例如行距,输出(以字符串形式)被修改。为了测试此类场景,我使用字符串文字,如下所示的预期结果。

该方法使用字符串生成器 ( AppendLine) 生成所述输出。我遇到的一个问题是比较这些字符串。在下面的示例中,两者就其所代表的含义而言是相同的。结果是我关心的区域,但是当比较两个字符串时,一个是文字,一个不是,相等自然会失败。这是因为其中一个字符串发出行间距,而另一个字符串仅演示其包含的格式。

解决这个平等问题的最佳方法是什么?我确实关心格式,例如方法结果中的新行,这是至关重要的。

代码:

string expected = @"Test\n\n\nEnd Test.";
string result = "Test\n\n\nEnd Test";

Console.WriteLine(expected);
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)

输出:

  测试\n\n\n结束测试。
  测试


  结束测试

c# string equality

2
推荐指数
1
解决办法
2236
查看次数

如何从包含空格的文本文件或cdr文件中删除换行符或换行符?

这是我的情况,我能够使用修剪或替换删除空格.但它不会删除每个文件末尾的换行符或换行符.如何删除C#中的空格和换行符?

提前致谢.

c#

1
推荐指数
1
解决办法
3111
查看次数

使用换行符将文本转储到文件

private void btnDump_Click(object sender, EventArgs e)
{
    using (StreamWriter sw = new StreamWriter("E:\\TestFile.txt"))
    {
        // Add some text to the file.
        sw.WriteLine(txtChange.Text);
    }
}
Run Code Online (Sandbox Code Playgroud)

这会将txtChange的文本转储到文本文件中.txtChange是一个富文本框,其中包含换行符(换行符).

当用户单击"转储"按钮时,所有文本都被转储但不在新行上.

例如txtChange看起来像

1
2
3
4
Run Code Online (Sandbox Code Playgroud)

倾销文本看起来像 1234

如何格式化文本转储以使文本在新行上?

c# file-io textbox dump line

1
推荐指数
1
解决办法
8589
查看次数

如何删除字符串中的\n?

如何删除\n字符串?

例如

  1. 输入: string s = "\n1234"
  2. 我想要的输出(但我无法实现): string s = "1234"

我尝试过(并且失败了):

  1. s.Remove(0,1);
  2. s.Trim();

补充说明 :

我认为\n算作1,char因为当我尝试时:

bool b = s[0]=='\n';
Run Code Online (Sandbox Code Playgroud)

b =真.

c# string substring

1
推荐指数
1
解决办法
8482
查看次数

C#字符串问题

我有一个常量字符串,如下所示

const String GetSQL = @"select
            id
        from
            emp

        ";
Run Code Online (Sandbox Code Playgroud)

当我尝试在方法中使用相同的方法时,GetSQL的值是换行符,即选择\ r \n id\r \n等.

如果没有这些休息,我怎么能在一行中得到它

谢谢

c#

0
推荐指数
1
解决办法
165
查看次数

这是使用换行符拆分字符串的正确方法

我写了一些代码来获取单词doc并将其复制到剪贴板.在这个单词doc中,自己有800多个字符串.

我正在尝试逐行拆分文档,将其插入列表中,然后出于测试目的显示其中一行.但是,我收到一个空消息框.(以前的测试显示列表确实包含800多行.由于代码错误,它们可能只是null.)

这是我的代码:

string myData = data.GetData(DataFormats.Text).ToString();

List<string> myList = new List<string>(myData.Split(new char[]{'\r','\n'}));

MessageBox.Show(myList[5]);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c# winforms

0
推荐指数
1
解决办法
220
查看次数