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)

指定された Locale の規則を使用して、この String 内のすべての文字を小文字に変換します。

Java SE 7 プラットフォームで使用可能なロケールのリストを次に示します。

于 2012-07-19T05:53:29.123 に答える
0

その答えは、「J2ME では動かない!」だと思います。

参照: Character クラスを使用せずに J2ME で char を小文字に変換すると、回避策が求められます。

なぜそれが機能しないのかはわかりません (そして、J2ME ソース コードにアクセスして調べることもできません!) が、Character.toLower()Java ME プラットフォームでの の実装が ASCII でしか機能しないことが原因であると思われます。

これらのメソッドの Java SE の javadoc では、これらのメソッドが Unicode 標準の内容に従っていると述べられていますが、Java ME の javadoc は単純にあいまいです。これにより、何をすべきかを決定するのはJava MEプラットフォームの実装者に任され、あなたの場合、彼らはそれを失敗させたようです.

意見: これは、Sun / Oracle が J2ME の管理を誤っていると人々に言わせるナンセンスです。

于 2012-07-19T06:06:09.780 に答える