gpt4 book ai didi

c# - 如何安全地拆分字符串?

转载 作者:太空狗 更新时间:2023-10-30 00:02:12 25 4
gpt4 key购买 nike

当我们出于任何原因想要拆分 sting 时,我们(至少我自己)倾向于使用(竖线)| 字符进行拆分,因为很难找到某人或那个人应用程序在字符串上使用它......但是如果它使用会发生什么?

好吧,一个简单的Crash将被抛出:)

我发现一所大学使用 non-printable字符来做同样的技术,例如:

String.Format(
"{1}{0}{2}{0}{3}{0}{4}",
(char)2,
myFirstString,
mySecondString,
myThirdString,
myFourthString);

当我们想要将孔串提取到它的部分时

String.Split((char)2);

这安全吗我应该采用这种安全拆分字符串的方式吗? 还有其他安全技术吗?

最佳答案

它可能比管道“更安全”,因为它更罕见,但这两种方式都不是最佳选择,因为它们将您限制在可能字符串的一个子集中。

考虑使用适当的编码——明确任意字符串列表进行编码。就编码而言,最简单的可能是简单地序列化一个 string[]。您可以使用 BinaryFormatterXmlSerializer 或其他东西。

如果结果必须是一个字符串,而且必须是一个字符串,那么您可以尝试这样的操作:

  • 编码:(字符串列表到单个字符串)
    • 将每个字符串中的每个 ! 替换为 !e 并将每个 | 替换为 !p。现在,所有字符串都不包含 |,您可以轻松地反转它。
    • 使用 | 作为分隔符连接字符串。
  • 解码:(单个字符串返回字符串列表)
    • 拆分 | 字符。
    • 将每个字符串中的所有 !p 替换为 | 并将 !e 替换为 !。这将恢复原始字符串。

关于c# - 如何安全地拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3959277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com