带有特殊/ unicode字符的toLowerCase抛出异常

时间:2009-07-27 19:49:34

标签: java string unicode

如果我错了,请纠正我。

如果str中包含“”等字符,则运行:

str.toLowerCase(Locale.English);

抛出空指针异常。这就是我所看到的行为。

那么这里的交易是什么?这是怎么回事?未指定toLowerCase抛出空指针异常。

有一种简单的方法来解决这个问题吗?我需要将str作为小写,以便能够使用不区分大小写包含对另一个字符串的检查,但我需要字符串来包含这些字符才能正确显示。

如果没有“简单方法”,你会说最有效的解决方案是什么?

2 个答案:

答案 0 :(得分:3)

我建议您尝试使用String object's equalsIgnoreCase() method

,而不是转换为小写字母

尽管正如评论所说,除非参数为null,否则toLowerCase()函数没有理由抛出空指针异常。我要么使用调试器检查str的状态,要么在toLowerCase()语句中包含if函数调用,如果str为null,则执行某些操作(如抛出异常,打印语句,记录消息)而不执行函数调用。

答案 1 :(得分:2)

嗯,它对我有用:

String upper = new String("asdCSD4rSDFSDFS•••••••••XCj");
String lower = upper.toLowerCase(Locale.ENGLISH);
System.out.println("Lower " + lower);

Lower asdcsd4rsdfsdfs•••••••••xcj