【问题标题】:NewLine replacement c#?换行符替换c#?
【发布时间】:2013-03-05 10:04:13
【问题描述】:

我有一个 Windows Phone 应用程序。在应用程序中,我有一个文本框,其接受返回属性设置为 true。

我想要做的是从文本框中创建一个字符串并用特定字符替换新行,例如"NL"

我尝试了以下方法,但都没有奏效。

string myString = myTextBox.Text.Replace(Environment.NewLine,"NL");
string myString = myTextBox.Text.Replace("\n","NL");

【问题讨论】:

  • 你确定这是你要的换行符,而不是carriage return - \r? string myString = myTextBox.Text.Replace("\r","NL"); 有效吗?例如,Environment.NewLine 在 Windows 上通常是 \r\n,所以你已经尝试过 \n 和 \r\n!
  • 为什么不起作用?有例外吗?或者输出的格式不是你想要的?
  • 好吧,它没有引起异常,只是没有用。换行符没有被替换
  • 字符串 myString = myTextBox.Text.Replace("\r","NL");工作!非常感谢,我整个上午都在寻找这个。我不知道回车符 \r 存在!

标签: c# visual-studio windows-phone-7 windows-phone-8 windows-phone


【解决方案1】:

我不熟悉 windows phone(或 silverlight),但尝试使用 \r 拆分:

string myString = myTextBox.Text.Replace("\r","NL");

Why does a Silverlight TextBox use \r for a newline instead of Environment.Newline (\r\n)?

【讨论】:

  • 是的,这就是答案!谢谢!
  • 这是否被归类为重复? windows phone 是有效的银光吗?
【解决方案2】:

考虑更换不同类型的换行符以处理所有可能性

string myString myTextBox.Replace("\r\n", "NL").Replace("\n", "NL").Replace("\r", "NL");

【讨论】:

    【解决方案3】:

    使用此代码

    var myString = myTextBox.Text.Replace("\r","NL");
    

    这是为了与所有操作系统兼容。

    【讨论】:

    • 谢谢先生!!毕竟这就是答案
    【解决方案4】:

    具有相似主题的question 有一个非常优雅的answer,您可能会认为使用起来很有趣:

    using System.Text.RegularExpressions;
    
    myTextBox.Text = Regex.Replace(myTextBox.Text, @"\r(?!\n)|(?<!\r)\n", "NL");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-20
      • 2012-05-20
      • 1970-01-01
      • 2021-02-17
      相关资源
      最近更新 更多