0

我有一个 TextField,我想获取它的内容并将其转换为小写字符串。这是我的代码:

TextField searchWord = new TextField("label", "Some Text", 35, TextField.ANY);
String word = searchWord.getString();
String word2 = word.toLowerCase();
System.out.println(word2);

如果我在文本框中输入一个单词"Book"它工作正常,即 word2 将是一个字符串"book",但如果我输入一个俄语单词"Книга"它根本不起作用,即 word2 仍然是"Книга" .

在这种情况下是否有任何黑客攻击?

谢谢

4

2 回答 2

2

我认为您需要使用以下toLowerCase(Locale loc)方法:

使用给定语言环境的规则将此字符串中的所有字符转换为小写。

是 Java SE 7 平台中可用的语言环境列表。

于 2012-07-19T05:53:29.123 回答
0

我认为答案是:“它在 J2ME 上不起作用!”

参考: 在 J2ME 中将 char 转换为小写,而不使用 Character 类...这需要解决方法。

我不知道它不起作用的原因(而且我无法访问 J2ME 源代码来找出答案!),但我怀疑原因是Character.toLower()您的 Java ME 平台上的实现仅适用于 ASCII。

我注意到,虽然这些方法的 Java SE javadocs 说它们遵循 Unicode 标准所说的,但 Java ME javadocs 只是含糊不清。这让 Java ME 平台实现者来决定要做什么,在您的情况下,他们似乎搞砸了。

意见:这是一种胡说八道,导致人们说 Sun / Oracle 对 J2ME 管理不善。

于 2012-07-19T06:06:09.780 回答