好的,所以我基本上试图将每行包含1个单词的.txt文件的内容加载到字典中.
当这个文件中的单词是英文时,我没有遇到任何问题,但是将文件更改为带有重音的语言,我开始遇到问题.
必须在创建流阅读器时更改编码,还要在将单词添加到词典时使用ToLower方法中的文化.
基本上我现在有类似的东西:
if (!dict.ContainsKey(word.ToLower(culture)))
dict.Add(word.ToLower(culture), true);
Run Code Online (Sandbox Code Playgroud)
问题是像"esta"和"está"这样的词被认为是相同的.那么,有没有办法将ContainsKey方法设置为特定语言,还是我们需要在类似的行中实现某些东西?无论哪种方式,我都是c#的新手,所以我想请一个例子.
另一个问题淹没了新文件...在一百个单词后,它停止添加文件的其余部分,留下一个单词不完整...但我不能在该单词中看到任何特殊的字符来结束方法的执行,任何关于这个问题的想法?
非常感谢.
编辑:使用Jon Skeet sugestion解决了第一个问题.
关于第二个问题:好的,将文件格式更改为UTF8并删除了流阅读器中的编码,因为它现在可以正确识别重音符号.现在测试关于第二个问题的一些东西.
第二个问题也解决了,这是我的一个错误......耻辱......
快速回答每个人的问题,特别是Jon Skeet.
我假设你试图让词典不区分大小写.而不是调用ToLower,使用构造函数Dictionary采用相等比较器 - 并用于StringComparer.Create(culture, true)构造合适的比较器.
我不知道你的第二个问题是什么 - 我们需要更多的细节来诊断它,包括你正在使用的代码,理想情况下.
编辑:UTF-7几乎肯定不是正确的编码.不要只是猜测编码; 找出它真正意义上的东西.这个文本文件来自哪里?你能成功打开什么?
我怀疑至少你的一些问题是由于使用UTF-7.
| 归档时间: |
|
| 查看次数: |
1074 次 |
| 最近记录: |