• 締切済み

教えて

String ttx1 =tx1.getText(); int tr1 = Integer.parseInt(ttx1); あるtx1に入力したテキスト(数字)をttx1に代入してそれをintに変換したいんですが、なんかエラーがでます。何でエラーがでるのかわりません。なんでエラーがでるんですか?

みんなの回答

回答No.1

私はエラーがでません。 なんてエラーがでるんですか?

una_hoge
質問者

お礼

わかりました!! tx1からtx2に移るときにtabで移るんですけど、 数字の前に空白が入ってしまい、エラーが出ていることがわかりました。 テキストで、空白が入ったときにそれを無視して、数字に変換してくれないんですか?

una_hoge
質問者

補足

エラーはこれです。 Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: tx1.setText("13); * String ttx1 = new String("new"); String ttx2 = new String("new"); ttx1 =tx1.getText(); ttx2 =tx2.getText(); int tr1 = Integer.parseInt(ttx1); int tr2 = Integer.parseInt(ttx2); エラーがでるのは最後の、int tr2 = Integer.parseInt(ttx2);です。 ナンバーのフォーマットの関係でエラーが出ているのは明白です。 その証拠にtr1はエラーがでません。 仮に、ttx2.setText("34); とかを*に入れてやっていくと、 全くエラーがでません。GUIでテキストボックスに数字をを入力してそれをgetしているんですけど、それが何か問題らしいです。空白とかが入っているのかな?

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

関連するQ&A

  • どこが間違ってますか?

    アプレットを作っています。ここの前まではあっていて、おつりも~円です とでるのですが、計算結果が0以下でもこのおつりが足りませんというのが実行されません。 誰かよかったら教えて下さい。 if(event.getSource() == button2) {int diff = Integer.parseInt(textfield1.getText()) - Integer.parseInt(label3.getText()); if(diff < 0){ String otsuri; otsuri ="おつりが足りません"; label1.setText(otsuri);} String otsuri; otsuri ="お釣りは"+ diff +"円です。"; label1.setText(otsuri);}

    • ベストアンサー
    • Java
  • コマンドライン引数のチェック

    args[]ってString型の配列変数ですよね? たとえば、 コマンドライン引数で数字を受け取って演算するために Stringからint等の数値に変換するとします。 Integer.ParseInt()を使うと、もし数字ではない引数 だったときに例外処理が発生します。 事前に文字か数字がチェックする方法はあるのでしょうか? それとも例外処理で対応するしかないのでしょうか?

    • ベストアンサー
    • Java
  • 簡単電卓をjavaプログラムで作成しました。

    テキストフィールドに入力し、四則演算ボタンを押すと答えた表示されるように作ったのですが、答えが表示されません。どなたかご教授ください。お願いいたします。 import java.applet.Applet; import java.awt.*; // java.awtパッケージのインポート import java.awt.event.*; public class EasyCulc extends Applet { Button plus, minus, multi, div; // ボタン TextField txta, txtb, ans; // 数値入力用テキストボックス public void init() { plus = new Button("+");// ボタンのインスタンスを作成 plus.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // txtaに入力された値 + txtbに入力された値を計算 int answer = Integer.parseInt(txta.getText()) + Integer.parseInt(txtb.getText());ans.setText(Integer.toString(answer));// 答えをansに表示 } }); minus = new Button("-");// ボタンのインスタンスを作成 minus.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // txtaに入力された値 - txtbに入力された値を計算 int intAnswer = Integer.parseInt(txta.getText()) - Integer.parseInt(txtb.getText()); ans.setText(Integer.toString(intAnswer));// 答えをansに表示 } }); multi = new Button("x");// ボタンのインスタンスを作成 multi.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // txtaに入力された値 x txtbに入力された値を計算 int intAnswer = Integer.parseInt(txta.getText()) * Integer.parseInt(txtb.getText()); ans.setText(Integer.toString(intAnswer));// 答えをansに表示 } }); div = new Button("÷");// ボタンのインスタンスを作成 div.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // txtaに入力された値 ÷ txtbに入力された値を計算 int intAnswer = Integer.parseInt(txta.getText()) / Integer.parseInt(txtb.getText()); ans.setText(Integer.toString(intAnswer));// 答えをansに表示 } }); // コンポーネントの初期化 txta = new TextField("", 5); txtb = new TextField("",5 ); plus = new Button("+"); minus = new Button("-"); multi = new Button("x"); div = new Button("÷"); ans = new TextField("", 5); // コンポーネントを追加 this.add(txta); this.add(txtb); this.add(plus); this.add(minus); this.add(multi); this.add(div); add(new Label("計算結果")); this.add(ans); } }

  • 拡張for文の型変換について

    Javaでプログラミングを勉強しております。 拡張for文で変数宣言をする時についての質問です。 argsに数字を入れてString型をInt型に変換する時、変数宣言はどう書けばいいのでしょうか? 拡張for文に入れる前に Int num = Integer.parseInt(args[0]); と宣言してから for(int num : array){ 処理 } とするのか for(int num : array){ num = Integer.parseInt(args[0]) …ほかの処理 } みたいにfor文の中に埋め込むのか分かりません。 argsのString型を拡張for文でInt型にするにはどう書いたらいいでしょうか

  • ユーザー入力値を足し算する

    import java.io.*; public class sampleD4L2 { public static void main(String[] args) { //入力データー読み込みようオブジェクトを作成 BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in), 1); try{ //開始メッセージの表示 System.out.println("A+Bの足し算を行います"); //Aの値の入力を促す System.out.println("Aの値を入力してください"); //Stringクラス型の変数を宣言し読み込んだ入力データーを代入 String myString = myReader.readLine(); //String型に入力した値をint型の変数に代入 int intA = Integer.parseInt(myString); //Bの値の入力を促す System.out.println("Bの値を入力してください"); //Stringクラス型に読み込んだ入力データーの代入 int intB = Integer.parseInt(myString); //A+Bを計算し、intAnswerに代入 int intAnswer = intA + intB; //メッセージを合成して表示 System.out.println("A+Bを計算すると" + intAnswer + "になります"); //エラー処理ブロッグ }catch (IOException e) { System.out.println("エラーが発生しました"); } } } 上のソースは本通に写したんですが、Bの値が入力せずA+Aの計算になっています。どこがいけないのでしょうか?

  • Javaのforとwhileの使い方

    プログラミングをはじめたばかりのものです。 「何回か数字を入力してその合計が100になったら終了 するプログラム(100になるまで入力待ちを繰り返すプログラム」 というのを作っているのですが、 以下のようにするとエラーが出ました。 public class upto100 { public static void main(String[] args) { for (int i=0; i <= 100; i=i+j) { String line = reader.readLine(); int j = Integer.parseInt(line); System.out.println("まだ100じゃない"); } System.out.println("もう100"); } } 入力待ちにするString line~~と int j~~~の場所が間違っているのだろうと 思うのですが、どのようにすればよろしいのでしょうか?

    • ベストアンサー
    • Java
  • テキストフィールドに入力した数だけ円を表示する

    お世話になります。 表題の件ですが、どうしてもうまくいかなくて困っています。 Javaアプレットを使って、テキストフィールドに入力した数だけ円を描くというプログラムを作成しているのですが、下記を実行してもエラーになってしまい、 テキストフィールドに数字を入力しても何も出てこない状態です。 import java.awt.*; import java.applet.*; import java.awt.event.*; public class drawCircle extends Applet implements ActionListener{ TextField Circle; public void init(){ Circle = new TextField("", 2); add(Circle); Circle.addActionListener(this); } public void actionPerformed(ActionEvent e){ int CircNum = Integer.parseInt(Circle.getText()); repaint(); } public void paint (Graphics g){ int x=20; for(int i=0; i<=CircNum; i++){   ←※ここが悪いらしい g.drawString("◎", x, 20); x +=20; } } } ※の部分では、"CircNumを解決できません"と表示されてしまいます。 テキストフィールドを作成して、テキストフィールドに入力された数字を CircNumに代入して、その数だけ◎を描くというつもりで 上記を作成したのですが、なぜ※のようなエラーがでてきてしまうのでしょうか。 メソッドを超えてCircNumを使用しているからかな、と思うのですが、 解決方法がわかりません。 どなたかご教授いただけませんでしょうか。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • 整数型変換について

    恐れ入ります。 int型への変換方法なのですが、 double型からint型に変換するにはキャストを使うしかないのでしょうか? int s = (int)(12.0); //キャスト 今までparseIntでもできると思っていたのですが、 int s = Integer.ParseInt(12.0); とすると、コンパイルエラーが出ます。 この場合、括弧内は文字列型の場合に限られるのですか?

    • ベストアンサー
    • Java
  • Javaのオーバーライドについて教えてください!

    //Sample.java class A extends Fina{ public int part(String str1,String str2){ int iN1 = Integer.parseInt(s1); int iN2 = Integer.parseInt(s2); intNum1 *= intNum2; return intNum1; } } このプログラムに対応するように同じクラス内でオーバーロードした際のプログラムを教えてください。 オーバーロードの内容は、partメソッドをオーバロードして引数にString型のデータを二つ受け取り、2つのString型のデータをそれぞれint型に変換し、それぞれかけた値を別のクラスでメインから呼び出すにはどうすれば良いですか?

    • ベストアンサー
    • Java
  • Integerで変換する前に、0~9までの数字か判別したいです。

    /* Integerで変換する前に、0~9までの数字かどうか判別したいです。 入力した文字が'0'~'9'までの文字かどうか判別し、 trueなら、int len = Integer.parseInt(line) で変換し、 lenが1~10までの数値かどうか判別し、trueならwhileを抜ける それ以外は、もう一度入力するプログラムなのですか、 うまく作れなくて困ってます。 コンパイルはできましたが、入力時に入力が入らない現象がおきました。Ctrl + C では戻れます。 ここのプログラムが間違っているのですが、 if (line.length() != 0 && '0' >= line.charAt(i) && line.charAt(i) <= '9') { 何かいい方法はありませんか? */ import java.io.*; public class Kazuate { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 宣言 StringBuffer sb = new StringBuffer(); String line = null; // 桁数を入力 System.out.print("1~10までの値: "); while (true) { for (int i = 0; i < len; i++) { line = reader.readLine(); if (line.length() != 0 && '0' >= line.charAt(i) && line.charAt(i) <= '9'){ int len = Integer.parseInt(line); if (Integer.parseInt(line) >= 0 && Integer.parseInt(line) <= 10) { break; } } System.out.print("入力が間違っています。もう一度を入力して下さい。\n" + "桁数(1~10までの値): "); continue; } break; } } System.out.print("入力した値は" + len + "です。"); } }