如果我错了,请纠正我。
如果str
中包含诸如“•
”之类的字符,则运行:
str.toLowerCase(Locale.English);
抛出空指针异常。这就是我所看到的行为。
那么这是怎么回事呢?这是怎么回事?未指定 toLowerCase 抛出空指针异常。
有没有简单的方法可以解决这个问题?我需要 str 为小写,以便能够使用不区分大小写的包含检查另一个字符串,但我需要该字符串包含这些字符才能正确显示。
如果没有“简单的方法”,您认为最有效的解决方案是什么?
最佳答案
我建议尝试 String
object's equalsIgnoreCase()
method 而不是转换为小写字母.
尽管如此,正如注释所说,除非参数为空,否则 toLowerCase()
函数没有理由抛出空指针异常。我要么使用调试器来检查 str
的状态,要么将 toLowerCase()
函数调用包装在 if
语句中,并且 if str
为 null,执行某些操作(例如引发异常、打印语句、记录消息)并且不执行函数调用。
关于java - 带有特殊/unicode 字符的 toLowerCase 会引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1190254/