我需要摆脱出现在我的字符串中的所有换行符(来自db).我使用以下代码执行此操作:
value.Replace("\r\n", "").Replace("\n", "").Replace("\r", "")
Run Code Online (Sandbox Code Playgroud)
我可以看到,至少有一个角色表现得像行结束,幸存下来.字符代码是8232.
这对我来说很蹩脚,但我必须说这是我第一次有幸看到这个角色.显而易见,我可以直接替换这个字符,但我正在考虑将我当前的方法(基于替换"\ r"和"\n"的组合)扩展到更加可靠的东西,因此它不仅包括' 8232'char,还有其他所有人都没有找到我.
对于这样的问题,你有防弹方法吗?
编辑#1:
在我看来,有几种可能的解决方案:
我会说最好的结果将是应用第一和第四种方法之后,但我无法确定哪种方法会更快.您认为哪一个是最完整的?
编辑#2
我在下面发了anwer.
我有一个字符串,里面有一些Environment.Newline.我想从字符串中删除它们,而是用逗号替换Newline.
在您看来,使用C#.NET 2.0的最佳方法是什么?
所以我知道如何在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)
我可以写更多的例子/组合,但我想我的意思有点清楚.
提前致谢.
我目前正在使用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) 我正在以流的形式读取文件: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) 我有以下代码:
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]);不起作用。
我正在开发一个函数,它给出了一些设置 - 例如行距,输出(以字符串形式)被修改。为了测试此类场景,我使用字符串文字,如下所示的预期结果。
该方法使用字符串生成器 ( 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#中的空格和换行符?
提前致谢.
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
如何格式化文本转储以使文本在新行上?
如何删除\n字符串?
例如
string s = "\n1234"string s = "1234"我尝试过(并且失败了):
s.Remove(0,1);s.Trim();补充说明 :
我认为\n算作1,char因为当我尝试时:
bool b = s[0]=='\n';
Run Code Online (Sandbox Code Playgroud)
b =真.
我有一个常量字符串,如下所示
const String GetSQL = @"select
id
from
emp
";
Run Code Online (Sandbox Code Playgroud)
当我尝试在方法中使用相同的方法时,GetSQL的值是换行符,即选择\ r \n id\r \n等.
如果没有这些休息,我怎么能在一行中得到它
谢谢
我写了一些代码来获取单词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)
我究竟做错了什么?