• 締切済み

入力された文字の種類の判別方法

 JDK5.0でウィンドウ型アプリケーションを作成しているのですがTextFieldに入力された文字列が ・カタカナと数字のみ ・数字のみ などの判別をさせたりするには、どのようにすればいいか教えていただけないでしょうか。よろしくお願いします。

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.3

 以下のプログラムは、テキストフィールドに任意の文字列を入力してCheckボタンを押すと、 使われているキャラクタ(数値のみ/数値とカタカナのみ/それ以外を含む)に応じたメッセージをラベルに書き出すサンプルです。 import java.awt.*; import java.awt.event.*; class chartest { Button BN; Label LB; TextField TF; public chartest(Frame p) { p.add(TF = new TextField(), BorderLayout.NORTH); p.add(BN = new Button("Check"), BorderLayout.CENTER); p.add(LB = new Label("Start"), BorderLayout.SOUTH); BN.addActionListener(new checkaction()); }; class checkaction implements ActionListener { public void actionPerformed(ActionEvent ae) { String s = new String(TF.getText()); if (s.matches("[[0-9][0-9]]*")) LB.setText("数値のみ"); else if (s.matches("[[0-9][0-9][ヲ-ン][ァ-ヶ]]*")) LB.setText("数値とカタカナ"); else LB.setText("数値/カタカナ以外を含む"); }; } } public class charcheck { public static void main(String args[]) { Frame MF = new Frame("Character Check"); MF.setSize(320,120); MF.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); }; }); new chartest(MF); MF.setVisible(true); }; }

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

数字の場合は、 java.lang.Character.isDigit(int) を使って、文字列を走査すればいいと思う。 カナと数字の場合は、 java.util.regex パッケージを使って正規表現でマッチさせるといいんじゃないかな。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

↓ここを見れば一発ですよ!  がんばって下さい。

参考URL:
http://allabout.co.jp/internet/hpcreate/closeup/CU20050620A/index.htm
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Flash lite 1.1 で入力された文字の判別方法

    Flash lite 1.1 で入力された文字の判別方法 いつもお世話になっております。 flashlite1.1にて入力されたテキストが数字かどうか判別をしているのですが、 fscommand2("SetInputTextType", "変数名", "Numeric"); で数字入力だけかと思ったら、機種によっては文字入力の画面を呼び出すことによって (#$!%&等の文字が入力出来る事がわかったので調整を入れようと思ったのですが、 用意されてる関数のintやstringではどうも上手く動かず困っております。 数字以外が入力されたら空欄に戻したいのですがどのようにすればいいでしょうか? また、何か使える関数等はあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • 入力文字列が数字かどうかの判別

    キーボードから入力した文字列が数字かどうかを判別したいのです。 入力した文字列が数字ではない間、またその逆の文字列が数字の間ループさせたいのです。 ループさせないやり方(Integer.parseInt(String)で数字でなければcatchで処理する)はわかるのですが・・・ import java.io.*; class Test{ public static void main(String[] args){ String str = ""; BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); try{ do { str = br.readLine(); System.out.print("\n"); }while(strが数字の間、もしくは数字以外の間) } catch(Exception e){ System.err.println(e); } } } 上のプログラムのwhileの中で判別したいのです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 文字列にある数字を判別するにはどうすればいいでしょうか?

    文字列にある数字を判別するにはどうすればいいでしょうか? 例え:[今年は2010年7月21日です]という文字列有ります。 この文字列の中で数字が6個ありますが、 どのような方法で判別することが可能でしょうか? ActionScript2.0です。 自分の考えては、とりあえず文字列を配列にする必要があると思い、 ary = str.split("");にしました。 その後、forなどを利用して配列を一個ずつ呼び出して、数字か文字かを判別し、数字がいくつあるかを わかりたいですが、、、うまくできません。 是非、よろしくお願いします。

    • ベストアンサー
    • Flash
  • Excelスプレッドシート上の文字列を簡単に判別する方法

    これまで手で集計していたExcel上の数字データを自動計算するために sumif関数などを使っていろいろ計算式を組み込んでいるのですが、 関数を使って計算した結果と手で計算した結果が違ってきてしまい、困っております。 シート上の数字の中に文字列が混じっている可能性がありますが、 シート上のセルの多くの数字の中で、どれが文字列なのか一見判別できず、すべての数字について、isunumber関数を使って調べたり、一からすべて数字を入力しなおすのも大変です。 シート上の数字をすべて関数の計算対象になる数列データに一括変換する方法はないのでしょうか? 困っています。どなたか助けて下さい。 どうぞ宜しくお願い申し上げます。

  • 半角カナの判別方法

    文字列に半角カタカナを含んでいるかどうかを 判別する方法が分かりません。 Javaでの実現の仕方をご存知の方いらっしゃたら 教えて頂けないでしょうか。 よろしくお願いします。

  • カタカナ判別

    PHP4、及び5で扱える中で、全角・半角は見ずにカタカナかどうかだけ区別するにはどうすれば良いのでしょうか? 例を挙げると、 「あいウエオ」であれば、カタカナは3つ。 「あいうえオ」であれば、カタカナは1つと判断する様な物です。 文字列を一旦全て全角にして、それから全角カナ判別を行うのではなく、全角・半角関わらずにカナ判別を行う方法はあるのでしょうか?

    • ベストアンサー
    • PHP
  • エディットボックスに入力されている文字列が、スペースだけで構成されているかどうか。

    VC++6.0・Win32APIを用いて、ウィンドウズアプリケーションを作成しています。 エディットボックスに入力されている文字列が、スペース(全角スペース又は半角スペース)のみ (それらの組み合わせでも構わない)で構成されているかどうかを判別するアルゴリズムを教えてください。 ヒントでも構いません。 エディットボックスの作成や、そこからの文字列の取得については理解しています。 あっ、でもよく考えてみたらエディットボックスかどうかは関係ないですね(^_^;) 『ある文字列が・・・』で十分ですね。 お手数をお掛けしますが、よろしくお願いいたします。

  • 文字列の判別させるプログラム

    長さの等しい2つの文字列を入力しては、片方を何文字か左に回転したときにもう一方と一致するかどうか調べる関数rotateLを作るのですが、よくわかりません。 たとえば、 文字列1=abcde 文字列2=bcdea なら 一回転で一致 となる関数なのですが、この判別はどのようにすればいいのですか?

  • エクセルでの判別・入力

    エクセルで隣の列に含まれている文字列をみて他の列にある文字列を並べていくことはできますか? たとえば・・・ A B 犬 ワン 猫 ニャー 猫 ニャー 犬 ワン このようにA列の文字列を判別してB列にその文字列に対応した文字列 を自動的に挿入していく方法を教えてください。 よろしくおねがいします。

  • 文字列での数値の入力方法

    WINDOWS XP EXCELL 2003です。 6桁(200001~299999)の数字を入力をしていますが 例えば 200001 のコードを入力しようとしたときは 現在はそのまま 200001 と入力しています。 これを 1 と入力すれば 200001 と省略して入力する方法はないでしょうか。 下記の2つの方法で試しましたがうまくいきません。  1 ユーザー定義で  200000 と設定 セルに1と入力すると確かに200001となりますが 文字 列 の扱いになりません。  2 A1 = 200000 B1 = 1 で A1+B1=200001 と矢っ張り文字列にはなりません。 文字列を参照している数式が =IF(B7="","",VLOOKUP(B7,商品管理!$A$2:$B$211,2,FALSE)) & "" 何か良い方法で省力化できて入力でき且つ文字列なることは可能でしょうか。 良い方法がありましたらご指導いたたけませんでしょうか。 よろしく御願いします。