作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我们出于任何原因想要拆分 sting 时,我们(至少我自己)倾向于使用(竖线)|
字符进行拆分,因为很难找到某人或那个人应用程序在字符串上使用它......但是如果它使用会发生什么?
好吧,一个简单的Crash将被抛出:)
我发现一所大学使用 non-printable字符来做同样的技术,例如:
String.Format(
"{1}{0}{2}{0}{3}{0}{4}",
(char)2,
myFirstString,
mySecondString,
myThirdString,
myFourthString);
当我们想要将孔串提取到它的部分时
String.Split((char)2);
这安全吗? 我应该采用这种安全拆分字符串的方式吗? 还有其他安全技术吗?
最佳答案
它可能比管道“更安全”,因为它更罕见,但这两种方式都不是最佳选择,因为它们将您限制在可能字符串的一个子集中。
考虑使用适当的编码——明确对任意字符串列表进行编码。就编码而言,最简单的可能是简单地序列化一个 string[]
。您可以使用 BinaryFormatter
或 XmlSerializer
或其他东西。
如果结果必须是一个字符串,而且必须是一个短字符串,那么您可以尝试这样的操作:
!
替换为 !e
并将每个 |
替换为 !p
。现在,所有字符串都不包含 |
,您可以轻松地反转它。|
作为分隔符连接字符串。|
字符。!p
替换为 |
并将 !e
替换为 !
。这将恢复原始字符串。关于c# - 如何安全地拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3959277/
我是一名优秀的程序员,十分优秀!