すごく初歩的なことなんですが、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);

お手数ですが、どこがいけないのか?教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (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の参考書の「変数型」のあたりの説明をもう一度読んでみましょう。
    • good
    • 0
この回答へのお礼

御礼が遅くなりましてすいませんでした。

ご指摘の通り、int型では小数点の実数を扱う事が出来ない事に気付きました。
もうちょっと冷静に考えてから質問すれば、お手間をおかけせずに済んだと
ちょっと反省しております。

それで質問した件ですが、一応出来ました。
どういうわけか、float型ですと出来ませんでしたが、その後すぐにdouble型
でやってみた所うまくいきました。
なぜかはわかりませんが、とりあえず何とか出来るようになりホッとしています。

色々お手数をおかけしました。

どうもありがとうございました。

お礼日時:2001/04/02 17:19

このQ&Aに関連する人気のQ&A

Java 参考書」に関するQ&A: submitとは?

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QInteger.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()はどういう意味を持つのかがわかりません。ただ適当につけた名前だとは思えないです。教えてもらえたら幸いです。お願いします。

Aベストアンサー

> argsで入力されたものは例え数字でも文字列として扱われているから、それをintにしている。ということですよね?

引数として (String[] args) と設定されていますので、
おっしゃるとおり 引数 args[]配列に入っているものは、文字列です。

ポイントは、 「String[]」でしょうか。。

QString型もしくはint型をInteger型に変換する方法

お世話になります。

Javaでプログラムを組んでいるのですが、
以下のことがわからずに困っています。

(1)String型をInteger型に変換する方法
Integer.getInteger("1000");
ではうまくいってくれません。

よろしくお願いします。

Aベストアンサー

 JavaのAPIの使い方に迷ったら、何はともあれリファレンスを見ましょう。

 クラス“Integer”のページをよく読めば、自然と答はわかるはずです。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/Integer.html

 getInteger()の項に「システムプロパティ」という言葉が出てきます。これは環境変数のようなものだと考えてください。ですから、今回の目的とは違います。

参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

QInteger型やArrayList型をint型にする方法は?

こんばんは。
Java初心者です。どうぞよろしくお願いします。

Integer型やArrayList型をint型にするにはどうしたらよいのでしょうか?
どうかアドバイスをよろしくお願いします。

Aベストアンサー

具体的には何をしたいのでしょうか。
Integer型ならintValueを取ればint型の値を得られますが、ArrayList型は明らかにint型とは互換性がありません。
どんなint型の値を取りたいのか分からないと有効な回答はできません。

QString a = "a"; と String b = new String ("b"); の違い

String a = "a";
String b = new String ("b");

お伺いしたいのですが、
b は String のインスタンスを作ってると思いますが、
a はどんなことをしてるのでしょうか?

Aベストアンサー

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その初期化に使った無名のStringインスタンスの3つがメモリ上に存在することになります。
if(b1 != b2) System.out.print("b1とは違うインスタンス");
の結果でもわかると思います。

したがって、
String b = new String ("b"); というのは、Integerに例えると
Integer i = new Integer(new Integer(1)); という処理を
していることになり、ひとつ無駄なインスタンス生成となります。

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その...続きを読む

Q分を表す数値(int型)を、String型の”○時間○分”形式に直したい

分(int型)を時間(String型)に直したいのですが↓

例えば、
-----------------------------
1. int minute = 160;
2. String time = '2時間40分'
-----------------------------
1のint型変数minuteの値を、
2のString型変数timeのような形式に直す方法を教えて下さい。

Aベストアンサー

一生懸命計算で求めるのもありですが、JAVAの標準APIを利用するはいかがでしょう。

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


int minute = 160;
String time = null;
Calendar calendar = null;
Date date = null;
DateFormat dateFormat = null;

// Calendarインスタンスを生成する。
// この時点でシステム日時がセットされている。
calendar = Calendar.getInstance();

// 時、秒をリセットした上で、
// 分を設定する。
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, minute);

// Dateインスタンスを取得する。
date = calendar.getTime();

// FormatAPIを利用して、Dateを書式付きで
// 文字列に変換する。
dateFormat = new SimpleDateFormat("H時間m分");
time = dateFormat.format(date);

// とりあえず標準出力
System.out.println( "[" + time + "]");

一生懸命計算で求めるのもありですが、JAVAの標準APIを利用するはいかがでしょう。

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


int minute = 160;
String time = null;
Calendar calendar = null;
Date date = null;
DateFormat dateFormat = null;

// Calendarインスタンスを生成する。
// この時点でシステム日時がセットされている。
calendar = Calendar.getInstance();

// 時、秒をリセットした上で、
//...続きを読む


人気Q&Aランキング

おすすめ情報