我遇到了一个我不明白的问题。我正在读取文件中的数据并遇到一种情况,即文件中的条目string.Replace(" ", "<whatever>")
不会替换单个空格的出现。我忍不住觉得有一些我错过的基本内容,因为声称为文字的同一种字符串工作正常。
文件中的典型行(每个条目由制表符分隔):
“2016-feb-08 09:54:00”“2016-feb-08 17:28:00”“短”“227”“5 170,00”“+ 3,90%”“0,00 “
使用File.ReadAllLines().Split(new[] {"\t" }, StringSplitOptions.None);
将文件中的数据读入数组。
然后我想清理第五个条目以便进一步处理,这是我遇到问题的时候:
entries[4].Replace(" ", string.Empty).Replace("\"", string.Empty);
给出“5 170,00”
Regex.Replace(entries[4], @"\s+", string.Empty).Replace("\"", string.Empty);
给出“5170,00”,这是我要找的结果。
使用单个空格在文字上运行第一个Replace()
工作正常,所以我很好奇文件中的字符串内的空格是否有所不同?虽然正则表达式解决方案有效,但我真的想知道我的“问题”是什么。
答案 0 :(得分:1)
您可以使用以下代码检查角色的十六进制值。普通空间为0x20,该值显示在您发布的代码中的五个和一个之间。
string input = "2016-feb-08 09:54:00 2016-feb-08 17:28:00 Short 227 5 170,00 +3,90% 0,00";
byte[] output = Encoding.UTF8.GetBytes(input);