- PR -

日本語の小文字からの大文字変換について

投稿者投稿内容
ハヤ
会議室デビュー日: 2004/06/10
投稿数: 12
投稿日時: 2004-09-22 11:59
いつもお世話になっています。

現在小文字から大文字に変換するプログラムを作成しているのですが
英字に関しては小文字から大文字に正しく変換されるのですが
日本語の小文字(ァィャ等)が正しく大文字に変換されません
私の方で行ったプログラム内容としましては
StringクラスのtoUpperCase()及びtoUpperCase(Locale)で日本語(JAPANESE)を指定して
変換を試みました。
いずれも正しく変換されませんでした。
どなたか日本語変換を知っておられる方がいましたら
ご教授ください。
おっきー
大ベテラン
会議室デビュー日: 2003/05/01
投稿数: 104
投稿日時: 2004-09-22 12:07
日本語の小文字(ァィャ等)の変換に関しては独自に対応する必要があります。

動作確認していませんので、コンパイルが通るかどうかわかりませんが、
こんなメソッドを作って対応してはどうでしょう?

public static char toUpperKana(char c) {
switch(c) {
case 'ァ':
return 'ア';
default:
return c;
}
}
ハヤ
会議室デビュー日: 2004/06/10
投稿数: 12
投稿日時: 2004-09-22 12:20
さっそくのご返信ありがとうございます。
やはり独自実装しかないのですね。
ユーティリティとして変換用のメソッドを実装して
対応してみようと思います。

ありがとうございました。
Odakaz
ベテラン
会議室デビュー日: 2004/05/24
投稿数: 70
投稿日時: 2004-09-22 12:22
下記のようなコードを実行してみたところ、結果はfalseが表示されました。
Java的には小文字じゃないってことでしょうか。

コード:

public static void main(String[] args) {
System.out.println(Character.isLowerCase('ァ'));
}



というわけで、おっきーさんの提案のように、個別対応が必要そうですね。

[追記]
Character.getType('ァ')をしてみたらCharacter.OTHER_LETTERが帰ってきました。
そもそも日本語には大文字,小文字っていう概念がないので、当然といえば当然の結果ですが ^−^;

[ メッセージ編集済み 編集者: Odakaz 編集日時 2004-09-22 12:38 ]
ハヤ
会議室デビュー日: 2004/06/10
投稿数: 12
投稿日時: 2004-09-22 15:10
返信ありがとうございます。
たしかにfalseで帰ってきてしまうんですよね。。。
Jakarta等でライブラリ配布されてないものでしょうか^^;
Odakaz
ベテラン
会議室デビュー日: 2004/05/24
投稿数: 70
投稿日時: 2004-09-22 15:15
引用:

はちさんの書き込み (2004-09-22 15:10) より:
返信ありがとうございます。
たしかにfalseで帰ってきてしまうんですよね。。。
Jakarta等でライブラリ配布されてないものでしょうか^^;



そもそも、「ア」と「ァ」って、まったく別物であって、大文字と小文字という関係ではないので、それはないと思います。

[ メッセージ編集済み 編集者: Odakaz 編集日時 2004-09-22 15:16 ]
aki
常連さん
会議室デビュー日: 2004/09/17
投稿数: 23
お住まい・勤務地: 東京・神奈川
投稿日時: 2004-09-22 15:56
public static String henkan(String in){
char chr;
String ret = "";
String from = "アイウエオ";
String to = "ァィゥェォ";

for (int i = 0; i < in.length() ; i++){
chr = in.charAt(i);
for( int j = 0; j < from.length(); j++ ) {
if (chr == from.charAt(j)){
chr = to.charAt(j);
}
}
ret = ret + chr;
}
return ret;
}

かなり無理やりなやり方ですが…
from→toに変えます。
ハヤ
会議室デビュー日: 2004/06/10
投稿数: 12
投稿日時: 2004-09-22 17:57
返信有難うございます。

そうですね。
たしかに別物ですものね。。。
ですので、かなり強引になりましたが
中村さんのように変換用のメソッドを自力で作りました。

みなさんいろいろとアドバイスして下さって
有難うございました。

スキルアップ/キャリアアップ(JOB@IT)