java - 带有特殊/unicode 字符的 toLowerCase 会引发异常

标签 java string unicode

如果我错了,请纠正我。

如果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/

相关文章:

c++ - 使用 RapidXml 解析日文汉字时出错

java - 如何检查字符串中的每个奇数索引是否具有相同的字母?

Java Servlet 和 HTTP 响应对象

java - 将我们的应用程序从Oracle JRE迁移到openJDK JRE是否有任何影响?

javascript - Jquery 包含字符串

perl - 如何在 Pod 和 perldoc 中使用 Unicode 字符?

Java将字符串内容解析为行,自动检测行类型

c++ - 如何按顺序删除 vector 中的重复值?

java - 如何按每个字符串的第二个字符对字符串数组进行排序?

c++ - 在 Qt 中,如何将 Unicode 代码点 U+1F64B 转换为包含等效字符 "🙋"的 QString?