c# – 从字符串中删除所有“不可见”字符?

前端之家收集整理的这篇文章主要介绍了c# – 从字符串中删除所有“不可见”字符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个小类来读取文件中的键值对列表并写入Dictionary< string,string>.此文件将具有以下格式:
key1:value1
key2:value2
key3:value3
...

这应该很容易,但是由于用户要手动编辑这个文件,我应该如何处理空格,制表符,额外的行跳转等等?我可以使用Replace删除空格和制表符,但是,是否还有其他“隐形”字符我缺少?

或者我可以删除所有不是字母数字的字符,“:”和行跳转(因为行跳转是将一对与另一对分开),然后删除所有额外的行跳转.如果是这样,我不知道如何删除“all-except-some”字符.

当然我也可以查看“key1:value1:somethingelse”之类的错误.但是这样的东西并不重要,因为它显然是用户的错,我只会显示“无效格式”消息.我只是想处理基本的东西,然后把所有这些都放在try / catch块中以防万一其他出错.

注意:我根本不需要任何空格,即使在键或值内也是如此.

解决方法

要求太模糊了.考虑:

“什么时候空间是一个价值?关键?”
“分隔符什么时候是值?键?”
标签何时是值?键?”
“当在值?键的上下文中使用分隔符时,值何处结束”?

这些问题将导致代码填写一次性和糟糕的用户体验.这就是我们有语言规则/语法的原因.

定义一个简单的语法并消除大部分的猜测.

“{核心价值}”,

在这里,您有一个键/值对包含在引号内,并通过分隔符(,)分隔.所有无关的字符都可以忽略.您可以使用XML,但这可能会吓跑不太熟练的用户.

注意,引号是任意的.随意更换任何不需要太多转移的集合容器(只要注意复杂性).

就个人而言,我会将其包装在一个简单的UI中,并将数据序列化为XML.有时候不这样做,但你没有给我任何理由.

猜你在找的C#相关文章