• ベストアンサー

JAVAで全角カナチェックの方法

初めまして。JAVA初心者です。 JAVAで全角カナ文字をチェックし、それ以外の文字であった場合に条件分岐させるような処理を書きたいのですが、どのように書けばよいのかわかりません。 JREのバージョンは1.3.1です。 業務上必要なので急いでおります。 申し訳ありませんが、お時間のある方ご教授下さい。 よろしくお願い致します。

  • t-mao
  • お礼率69% (16/23)
  • Java
  • 回答数4
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.2

>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; } }

t-mao
質問者

お礼

>これは、「全角カナ以外の文字があるかどうか」をチェックするということでしょうか。「半角カナが含まれていないか」を調べる、ではないわけですね。(つまり、全角カナ以外の半角カナ、半角英数字、全角漢字、全部あったらチェックする) まさにおっしゃるとおりです。言葉足らずな質問の趣旨を的確に捉えて頂いてありがとうございます。 ロジックもわかりやすく説明して頂いているので、Kyon2_PaPaさんの書き方を参考に作りたいと思います。 ありがとうございました。

その他の回答 (3)

  • yokkou
  • ベストアンサー率30% (34/111)
回答No.4

適当な作りですが・・・。 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; }

t-mao
質問者

お礼

素早いご返信ありがとうございます。 他の皆様もそうですが、すごく単純に作れるものなんですね。 勉強になりました、参考になります。 ありがとうございました。

  • i2719
  • ベストアンサー率35% (11/31)
回答No.3

私なら以下の様な感じにします。細かい仕様は修正してください。 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); }

t-mao
質問者

お礼

素早いご返信ありがとうございます。 勉強になります。 書き方が色々あることがわかりました。 ただ、基本はカナを格納する変数を作って、 チェックしたいString変数とカナ変数とを比較してチェックするということですね。(上手く説明できないですが、イメージはできました) 参考にします。ありがとうございました。

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.1

class ho{ public static void main(String args[]){ String hoge = "あいうえお"; if(hoge.equals("あいうえお")){ System.out.println("Hello"); } else { System.out.println("World"); } } }

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/String.html#equals(java.lang.Object)
t-mao
質問者

お礼

言葉足らずで質問の趣旨が伝わらなかったみたいです。 すみません。 素早いご返信ありがとうございました。

関連するQ&A

  • javaで「全角が含まれているか」のチェックメソッドを作るには?

    java初心者です。誰か教えて下さい。 javaのプログラミングで、文字列の中に全角が含まれているかどうか調べたい場合は、どう組めばよいのでしょう。 全角だと分からなくなってしまいます。 おねがいします。

    • ベストアンサー
    • Java
  • Javaを削除する方法

    *** 現状 *** 1. Java6-3からJava6-29にバージョンアップしましたが、 2. 旧バージョンの削除に失敗したらしくて  (インストーラ付・なし の区別も意識せずに削除したつもりですが、  操作手順は記憶がありません) 3. 新バージョンのインストールは確認できましたが  次の警告が表示されました。 【以下の以前のバージョンのJavaがシステムにインストールされていることが検出されました。  ・Java(TM)6Update3 システムセキュリティを確保するため、これらを削除する必要があります。】 4.コントロールパネル→プログラムのアンインストールを開いてもリストには  Java(TM)6Update29があるだけでJava(TM)6Update3が見つからないので  削除できなくて困っています。 5. C:\Program Files\Javaには2個のフォルダーがあり、  その1は jre6 ------------新バージョン  その2は jre1.6.0_03------旧バージョン  それぞれの中には多数のフォルダーとファイルがあります。 6. Javaの必要なサイトのゲーム(囲碁)は動くので、支障発生の有無はわかりません。 *** 質問 *** 上記 3.に従って削除したいのですが 同  4.では削除するものが見つからないので 同  5.その2 のフォルダーを削除してしまってよろしいか?

  • Java 半角全角の区別について

    こんばんは。 Javaのプログラミングで質問なのですが、 ある任意の一文字が(記号含む)半角か全角かで 処理を分けたいのですが、 どのようにコーディングしたら言いのでしょうか? イメージとしては画面で入力された文字が全角なら登録可能 としたいのですが。。 アドバイスよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Javaを新しいものにしたいです

    Javaを新しいものにしたいです 先日同類の質問をさせていただいた者です。 情報を整理しましたので宜しくお願いいたします。 WindowsXP-SP3(Meからバージョンアップ) IE8を使っています。 http://java.com/ja/download/installed.jsp こちらのページでJavaのバージョンは確認しました。 『Java バージョン: 1.4.2_xx, 1.5.0, 6.0 』 以下ページ内の案内・・・ 『ここでは、JVM がお使いのコンピュータで正常に機能しているかどうかをテストする方法を説明します。Java テクノロジで記述されたこのテストアプレットは、お使いのオペレーティングシステム、JVM、および Java Runtime Environment (JRE) に関する情報を表示します。 設定チェックリスト アプレットが正しく表示されない場合は、次に示すその他の設定を確認してください。 1.Web ブラウザで JRE を使用可能にする 2.「Java Plug-in コントロールパネル」で JRE を使用可能にする 3.Web ブラウザのキャッシュを消去する 』 という事でアプレットが正しく表示されませんでしたので設定を確認するのですが [インターネットオプション]に「Java (Sun)」の項目が有りませんし コントロールパネルに「Java」のコーヒーカップアイコンがありません。 「プログラムの追加と削除」にも名前がありません。 「Windows Installer CleanUp」 をインストールして試しましたがやはり名前がありませんでした。 http://www.java.com/ja/download/help/uninstall_java.xml http://support.microsoft.com/kb/290301/ja 今のままで特別不便を感じたことは無いですし これまでJavaについて特別意識したことも無かったのですが、ある記事で 「最近ホームページの改ざん事件が多発しており、Javaが古いとウイルス感染する恐れがある」 と書いてあるのを目にして思いついた次第です。 当方初心者ですがどのようにすれば最良なのか ぜひアドバイスを宜しくお願い致します。

  • javaのPathの設定

     こんにちは、java勉強中の初心者です、宜しくお願いします。  javaのPathの設定をする場合の環境変数について教えて下さい。  ある参考書を見ると、『「変数名」に「JAVA_HOME」、「変数値」に 「C:\java\jdk**.**.**.**\bin;」を入力します』と書かれていましたが、 別の本には、「%JAVA_HOME%\bin」と書かれていました。  ・ この書き方は、どちらが正しいのでしょうか、どちらの書き方も正しいのでしょうか。  ・ どちらも正しいのであれば、この「%~%」の意味はどのような意味でしょうか。  ・ 「JAVA_HOME」というのは、統一されている書き方(大文字、小文字、全角、半角も含めて)  でしょうか。  以上宜しくお願いします。

    • ベストアンサー
    • Java
  • Javaがおかしい

    普段IEで見ていた2chの生活板が通常とは違う表示のされ方になりました。(読み込み中・・)と出ます。 スレッドの下に「非javascript版はこちら」と出ていたのでJavaがおかしいのだろうと思いましたが、 インターネットオプションのjavaは有効になってました。JRE1.5.0_09を使用にチェックが入ってます。 sunのJavaコンソールを開こうとするとIEが全て終了してしまいます。 Javaのコントロールパネルも開けません。 元の状態に戻すにはどうしたらよいでしょうか? WinXPでSP2のIEです

  • Java で困っています。

    会社のパソコンなのですが、あるアプリケーションが月曜日に急に動かなくなりました。再インストールしてくださいとのことでそうしました。これにはjava JRE1.4.2_03が必要でアプリケーションのインストール時に一緒にインストールされる手順になっています。ところが、アプリケーションとJavaのインストールが完了してもアプリケーションが開きません。このアプリケーションのヘルプにきいたところ、いろいろプログラムfolderの中までチェックしたのですが、原因がわからず、ハードディスクが一部こわれているのでは?OSの不具合では?といわれました。実は動かなくなったとき何十回かに一回だけ開いて使えました。ほかに2-3個のアプリケーションがあり、それらは問題なく動いています。中にはjavaの別のバージョンを使っているものもあります。コントロールパネルの java plug-inをクリックしても開きません。やはり HDかOSの問題でしょうか。ほかにうまくjavaを上書きしたりできないでしょうか。

  • Java について

    いつもお世話様になっております。 本日は、Javaについてお聞きしたいことがあります。 しばらく使っていなかったパソコンに、Sunの「Java Runtime Environment Version 5.0 Update 11」をインストールしました。 そのときは、あるサイトを見るために、何も考えずにインストールしたのですが、最近になって色々と調べているうちに、いくつか疑問点が出てきました。 (1)IE6.0の、「ツール」→「インターネットオプション」の「詳細設定」で確認すると、 □<Applet> に JRE1.5.0_11を使用(再起動が必要) □Java JIT コンパイラの使用(再起動が必要) の両方とも、チェックがついている状態です。 これは、どちらかのチェックを外すべきでしょうか? (2)Java VMには、マイクロソフトが提供しているものと、Sunが提供しているものがあると聞きましたが、私のパソコンには最初からマイクロソフトのものが入っていたということでしょうか? (ちなみに、Windows XPが出てすぐに購入したパソコンです。) Sunのものをインストールする前から、「Java VMが必要です」と記述のあるサイトも見られていたので、疑問に思っています。 パソコン歴は長いのですが、わからないことばかりで、質問の仕方も下手(用語の間違いなどありましたらお許しください)で、申し訳ございません。 ご回答いただければ幸いです。 よろしくお願いいたします。

  • JAVAのバージョンについて

    JAVAのバージョンについて確認しているのですが、 今年の11月でJAVA SE(JRE)6のサポートが切れるようなのですが、 そこで疑問がありまして、、、 以下の2製品は(TM)が有るか無いか、の違いなのですが、何が違うのでしょうか。 また、本製品は両方とも今年の11月でサポート期限が切れるのでしょうか。 ・Java(TM) SE Runtime Environment 6 ・Java SE Runtime Environment 6

  • JavaScriptでの全角カナ英数字チェック方法について

    初心者で 簡単なことを質問してしまいまして 申し訳ございません。 全角カナ英数字+「ー」+「‐」のみ入力できるようにし、 それ以外が入力された場合は alertを出すようにしたいのですが、 チェックする方法としては 下記のとおりになりますでしょうか。 良い方法があれば教えてください。 (1)入力可能文字を宣言  アイウエオカキクケコ~ワヲン  +  1234567890  +  ABCDEFG~XYZ  +  abcdefg~xyz  +  ー  +  ‐ (2)入力された値を取得し  charAt(i)で一文字ずつ比較 すべての全角文字ではなく 上記文字のみ入力可能としたいのです。 入力可能な文字を 長々と定義するのもと思いまして お伺いしております。 どうぞ宜しくお願い申し上げます。