【问题标题】:Convert multi lined text to one line text and with symbol replacement将多行文本转换为单行文本并使用符号替换
【发布时间】:2017-03-19 19:24:59
【问题描述】:

我正在尝试在仅接受纯文本且必须在一行内的某处提交评论。我的问题是我不知道格式的类型以及如何提交评论。

例如,新行替换为 \r\n," 替换为 \" 等等。这取决于符号。

所以我的问题是如何将非法的多行文本变成计划和合法的东西......

例如转弯:

Here is the list:

"Pizza"

"Eggs"*

进入:

Here is the list: \"Pizza\"\r\n\r\n\"Eggs\"

或者至少这种格式叫什么,所以我可以自己做研究。

【问题讨论】:

  • 这称为 转义,对于 C# 语言它是 documented here。你需要知道你提交的服务/应用的所有转义规则。
  • 如果您只想将某些分隔符替换为其他内容(或删除它),请使用 String.Replace 。如果要将其拆分为多个字符串,请使用 String.Split
  • 我不知道格式的类型 ...如果您没有关于目标系统的信息或不完整的信息,就不可能正确。您需要知道它希望您转义哪些字符,哪些可能不会转义,以及它支持哪些类型的转义(反斜杠、加倍、八进制/十六进制 unicode,...)
  • 似乎只有这两个符号要替换。该网站是 Youtube,仅替换了这两个符号就可以很好地工作,我也通过添加答案来问这个问题,哈哈。谢谢大家的帮助!

标签: c# string text data-conversion


【解决方案1】:

如果您的列表条目中可以有空格,那么您需要注意替换的顺序。

var list = @"""Pizza"" ""Eggs"" ""Fish and Chips""";
var amendedList = list.Replace(@""" """, @"""\r\n""");
var amendedList2 = amendedList.Replace(@"""", @"\""");

【讨论】:

    【解决方案2】:

    这就是你要求的:

            string[] toReplace = { "\"", " " };
            string[] with = { "\\\"", "\\r\\n\\r\\n" };
            string str = "Here is the list: \"Pizza\" \"Eggs\"";
            string toCheck = str.Substring(str.LastIndexOf(':') + 2);
            Console.Write(str + "\n");
            for (int i= 0; i < toReplace.Length; i++)
            {
                toCheck = toCheck.Replace(toReplace[i], with[i]);
            }
            Console.Write(toCheck + "\n");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 2020-08-17
      • 1970-01-01
      相关资源
      最近更新 更多