我已经用其他语言编写了很多程序,但我对 PowerShell 还很陌生。我知道比较运算符的区分大小写版本,但我对某些结果感到紧张。
我假设 PowerShell 在进行字符串比较时使用 ASCII (Unicode) 值,所以我期望
"abc" -clt "ABC"
导致 错误 – 但它没有
这有一些直观的意义(下边一定比上边小——对吧?)但从 ASCII 的角度来看它没有意义。对于罗马字母字符,这是否刚刚被逆转 - 或者还有更多惊喜等着我?
前任
"#$%" -clt ")*+"
按预期工作(即 True )。
编辑 - 我最初的问题包括一个双重否定,可能会让人们感到困惑。以下是一些有助于澄清的示例:
PS> 'A' -clt 'a'
False
PS> 'a' -clt 'A'
True
P> 'A' -cgt 'a'
True
P> 'a' -cgt 'A'
False
最佳答案
I assumed that PowerShell used ASCII (Unicode) values when doing string comparisons
它不是 :)
PowerShell 中比较运算符的特定于字符串的重载都按字母顺序运行,这也意味着大写字母优先于小写字母。
另一种思考方式:如果您是一名图书管理员,并且不得不为两位作者将同一主题的书籍编入索引,将自己的样式命名为
John Doe
和 john doe
分别地,你可能会把这些书放在 John Doe
第一的 :)
关于PowerShell区分大小写的字母字符顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59034111/