- ベストアンサー
JAVAで全角カナチェックの方法
初めまして。JAVA初心者です。 JAVAで全角カナ文字をチェックし、それ以外の文字であった場合に条件分岐させるような処理を書きたいのですが、どのように書けばよいのかわかりません。 JREのバージョンは1.3.1です。 業務上必要なので急いでおります。 申し訳ありませんが、お時間のある方ご教授下さい。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>JAVAで全角カナ文字をチェックし、それ以外の文字であった場合に条件分岐させる これは、「全角カナ以外の文字があるかどうか」をチェックするということでしょうか。「半角カナが含まれていないか」を調べる、ではないわけですね。(つまり、全角カナ以外の半角カナ、半角英数字、全角漢字、全部あったらチェックする) 時間がないということのようですので、手っ取り早く「総当り」で調べるメソッドをあげておきましょう。ぱっと思いついて書いた程度なので、とてもベタなものです。 もし、「半角カナが混じっているかチェックする」というなら、zenkakuに半角カナのデータを用意して少しアレンジすればできるでしょう。 public class Sample { public static void main(String[] args) { System.out.println(isZenkaku("アイウエオ")); } // isZenkaku(String)がtrueなら、全部全角カナ。 public static boolean isZenkaku(String str) { String zenkaku = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ"; boolean result = false; for (int i = 0; i < str.length(); i++) { char c1 = str.charAt(i); boolean flg = false; for (int j = 0; j < zenkaku.length(); j++) { char c2 = zenkaku.charAt(j); if (c1 == c2) { flg = true; } } result = flg ? true : result; } return result; } }
その他の回答 (3)
- yokkou
- ベストアンサー率30% (34/111)
適当な作りですが・・・。 static String KANA = "アイ・・・ン"; private boolean isKana(string strParam){ for (int i = 0; i < strParam.length; i++){ if (KANA.indexOf( strParam.substring( i, i + 1) ) > -1){ return false; } } return true; }
お礼
素早いご返信ありがとうございます。 他の皆様もそうですが、すごく単純に作れるものなんですね。 勉強になりました、参考になります。 ありがとうございました。
- i2719
- ベストアンサー率35% (11/31)
私なら以下の様な感じにします。細かい仕様は修正してください。 public static boolean isFurigana(char c) { switch (c) { case 0x30A1:// ァ case 0x30A2:// ア case 0x30A3:// ィ case 0x30A4:// イ case 0x30A5:// ゥ case 0x30A6:// ウ case 0x30A7:// ェ case 0x30A8:// エ case 0x30A9:// ォ case 0x30AA:// オ return true; default: return Character.isSpaceChar(c); } } public static void main(String[] args) { String s = "アイ ウ エオ"; int length = s.length(); int i = 0; while (i < length && isFurigana(s.charAt(i))) i++; System.out.println(s); System.out.println(i == length); }
お礼
素早いご返信ありがとうございます。 勉強になります。 書き方が色々あることがわかりました。 ただ、基本はカナを格納する変数を作って、 チェックしたいString変数とカナ変数とを比較してチェックするということですね。(上手く説明できないですが、イメージはできました) 参考にします。ありがとうございました。
- hofchan
- ベストアンサー率62% (17/27)
class ho{ public static void main(String args[]){ String hoge = "あいうえお"; if(hoge.equals("あいうえお")){ System.out.println("Hello"); } else { System.out.println("World"); } } }
お礼
言葉足らずで質問の趣旨が伝わらなかったみたいです。 すみません。 素早いご返信ありがとうございました。
お礼
>これは、「全角カナ以外の文字があるかどうか」をチェックするということでしょうか。「半角カナが含まれていないか」を調べる、ではないわけですね。(つまり、全角カナ以外の半角カナ、半角英数字、全角漢字、全部あったらチェックする) まさにおっしゃるとおりです。言葉足らずな質問の趣旨を的確に捉えて頂いてありがとうございます。 ロジックもわかりやすく説明して頂いているので、Kyon2_PaPaさんの書き方を参考に作りたいと思います。 ありがとうございました。