我有一个问题,我自己无法解决。我正在使用CSV格式的文件中使用默认编码读取字符串值(据我所知,UTF-8)。问题是,我使用以下方法来确定字符串是否仅包含数字:
private static bool IsDigitsOnly(string str)
{
return str.All(Char.IsDigit);
}
在大多数情况下,它工作正常,但当输入字符串是以下之一时返回'false':
我尝试了另一种方法,将方法更改为:
str.All(c => c >= '0' && c <= '9');
在上述情况下也是如此。
当我调试时,我可以看到,字符串值是正确的(没有尾随或前导空格,字符或任何东西)
有人可以帮助我吗?
提前谢谢你, 托马斯。
答案 0 :(得分:0)
替换
return str.All(char.IsDigit);
与
return str.All(c =>
char.IsDigit(c));
并在第二行设置一个断点,然后调试以检查传递的字符,并希望找到一个不是数字的字符。
答案 1 :(得分:0)
我试图解决这个问题,发现除了第3和第4个字符串外,每个字符串末尾都有一些怀疑字符。看我的测试应用程序屏幕截图:
这导致错误。如果您看到该字符的ASCII值,那么它的31,列为单位分隔符。需要看看它为什么存在。
我知道我没有回答你的问题,而是试图给出/得到一些指针来解决这个有趣的问题。