int型の値をStringに変換して表示する方法

このQ&Aのポイント
  • int型の値をString型に変換してTextFieldに表示させたいです。先頭にゼロが付いている文字列を表示する際に、先頭ゼロを削除する方法も知りたいです。
  • String型の値をint型に変換してから再びString型に変換する方法を試してみましたが、TextFieldに表示されませんでした。何が間違っているのか教えてください。
  • TextFieldに表示するためにint型の値をString型に変換する方法を教えてください。先頭にゼロが付いている文字列を表示する際に、先頭ゼロを削除する方法も知りたいです。
回答を見る
  • ベストアンサー

int型の値をStringに変換して表示しようとしたけど

すごく初歩的なことなんですが、int型の値をString型に変換して TextFieldに表示させたいんです。 やり方としてはStringの値をわざわざint型に変換し、その値をさらに String型に変換しているんです。値は、文字列の先頭に”0”が付いて いるため、画面上表示させる時には、先頭ゼロを削除したいんです。 つまりStringの値は”0123.58”です。これを最終的に”123.58”と してやりたいんです。 そして、上記を下記のようにやってみた所、TextFieldはぴくりとも動 きませんでした。 String testA = "0123.58"; int suji = Integer.parseInt(testA); String kotae = new Integer(suji).toString(); textfield_A.setText(kotae); お手数ですが、どこがいけないのか?教えてください。

  • gal
  • お礼率100% (8/8)
  • Java
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
noname#30871
noname#30871
回答No.1

Javaで扱う数値には、整数型と実数型(小数点が付く数)の区別があります。 Integerは整数を表します。したがって、Integer.parseInt()に実数を与えると“NumberFormatException”という例外(エラー)が発生してしまいます。TextFieldが動かない原因は、おそらく2行目の例外で止まっているからです。 実数を扱うには、intやIntegerの代わりに“Float”あるいは“Double”を使います。2行目と3行目を次のようにしてみてください。 float suji = Float.parseFloat(testA); String kotae = new Float(suji).toString(); これで、kotaeに“123.58”が入るようになります。 Javaの参考書の「変数型」のあたりの説明をもう一度読んでみましょう。

gal
質問者

お礼

御礼が遅くなりましてすいませんでした。 ご指摘の通り、int型では小数点の実数を扱う事が出来ない事に気付きました。 もうちょっと冷静に考えてから質問すれば、お手間をおかけせずに済んだと ちょっと反省しております。 それで質問した件ですが、一応出来ました。 どういうわけか、float型ですと出来ませんでしたが、その後すぐにdouble型 でやってみた所うまくいきました。 なぜかはわかりませんが、とりあえず何とか出来るようになりホッとしています。 色々お手数をおかけしました。 どうもありがとうございました。

関連するQ&A

  • String型→int型への変換

    超初心者です。 多次元配列で求められる値table[b][1]をint型に変換したくて↓のように打ちましたが、エラーが出てしまいます。 int y = Integer.parseInt(table[b][1]); return y; どのようにすれば、良いのでしょうか? ご指導お願いしますm(__)m

  • intではなくStringで・・・

    こんなソースがあります。。 public class Check { public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i == 123) { System.out.println("あたり!"); } else if (i < 123) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } } } これを、int型の文字を入力して判定させるのではなく、String型の文字で判定させたいのですが、 int i = Integer.parseInt(args[0]);をどう変えればいけるでしょうか? よろしくお願いします!

    • ベストアンサー
    • Java
  • 【C++/CLI】int型からString型への変換

    C++/CLIにて、int型変数の値 int test1 = -1; int test2 = -10; をString型に変換し「-1」「-10」といったような文字列に、 変換しようと思っています。 String::Format( "{0:D1}", test1 ); String::Format( "{0:D2}", test2 ); といった方法で可能なのは分かったのですが、 この方法だと、Formatの引数を値の桁数に応じて変えねばなりません。 ※String::Format( "{0:D2}", test1 );  のようにすると、「-01」となってしまうため。 桁数を意識せずに、int型変数の値をそのまま文字列に変換するような 良い方法があれば、ご教示お願いできませんでしょうか?

  • 簡単電卓を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); } }

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

    アプレットを作っています。ここの前まではあっていて、おつりも~円です とでるのですが、計算結果が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
  • iアプリでint型、または文字列をDate型に変換する方法

    iアプリでint型、または文字列をDate型に変換する方法を教えてください。 int nen,tuki,hi; String DateStr; Date Hiduke; nen = 2002; tuki = 11; hi = 1; DateStr = Integer.toString(nen) + "-" + Integer.toString(tuki) + "-" + Integer.toString(hi); として、nen,tuki,hiから、またはDateStrからHidukeに変換したいのです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • int → char → string の変換

    お世話になります。 現在 VisualStudio2005 C# のコンソールアプリを作っています。 以下の場合どのようにすれば解決しますでしょうか? int code = 0xF97E; // この値をF97Eという文字(外字)にしたい 以下のように記述してみましたが、駄目でした。 int hex1 = ((code & 0xff00) >> 8); // (hex1==0xF9)になる int hex2 = (code & 0x00ff); // (hex2==0x7E)になる string s = char.ToString((char)hex1) + char.ToString((char)hex2 )); // (s==u~==0x757E)になってしまう。 原因がわかる方いらっしゃれば教えてください。

  • Integer.parseInt()について public static void main(String[] args) { int a =

    初歩的な質問だと思うのですが、、、 public class TestTree { public static void main(String[] args) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); GreatTree myTree = new GreatTree(a, b); myTree.makeTree(); myTree.makeGround(); } } というプログラムについて、Integer.parseInt()はどういう意味を持つのかがわかりません。ただ適当につけた名前だとは思えないです。教えてもらえたら幸いです。お願いします。

    • ベストアンサー
    • Java
  • EditText型をint型に変換し通貨表示に

    ■やりたいこと: AndroidのEditTextに、ユーザがインプットメソッドを用いて数字を入力した際、その値を 1. int型変数と、String型変数に代入(2つの型で、後々使えるよう変数内にデータ保持したい) 2. EditText(スマホ画面)には、入力後「通貨」書式で表示したい 「通貨」書式とは、EditTextに「1000と入力したら、1,000」のように、位取りして表示をしたいという意味です。 下記コードだと、アプリが起動直後に落ちてしまいます。 実行後に表示されるLogCatには「FATAL EXCEPTION」と書かれています。 ■レイアウト(xml:activity_main) <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="number"//画面から数値のみ:入力制限 android:digits="0123456789"/> ■クラスファイル public class MainActivity extends Activity implements OnFocusChangeListener { EditText editText; String str; String str2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //editText1=layoutのEditTextのid EditText editText = (EditText)findViewById(R.id.editText1); editText.setOnFocusChangeListener(this); str = editText.getText().toString(); //EditTextに入力された数字を取得 int i = Integer.parseInt(str); //Integerクラスの値=整数値を取得★ NumberFormat numFormat = NumberFormat.getCurrencyInstance(); //通貨フォーマット str2 = numFormat.format(i); //整数値を通貨フォーマットに } @Override public void onFocusChange(View arg0, boolean getFocus) { if (getFocus){ editText.setText(str2); //EditTextにセット(表示) } } } ==================================================================== 原因は「★」の部分のようです。ここを通過するととデバッガが落ちます。 (EditTextに半角数字を入れても、それがint型の保証がないからでしょうか) 上の「やりたいこと」を実現するには、どこを修正すればよいでしょうか。

  • 小数の2進数変換について教えてください。

    10進数を2進数に変換するプログラムを作ったのですが、 小数の2進数変換が出来ません。 小数を2進数に変換するにはどうしたらいいのでしょうか? よろしくお願いします。 import java.awt.*; import java.applet.*; import java.awt.event.*; public class Applet1 extends Applet { TextField textField1 = new TextField(10); TextField textField2 = new TextField(10); Button displayButton1 = new Button("2進数変換"); public void init() { displayButton1 = new Button("2進数変換"); add(new Label("10進数")); add(textField1); add(textField2); add(displayButton1); displayButton1.addActionListener(new ToBinaryAction()); } class ToBinaryAction implements ActionListener{ public void actionPerformed(ActionEvent e) { int x = Integer.valueOf(textField1.getText()).intValue(); textField2.setText(Integer.toBinaryString(x)); } } }

    • ベストアンサー
    • Java