0

単純な銀行口座の活動をシミュレートするプログラムを書いていますが、パラメーターなしで新しいアカウントを作成すると、文字列として表示されるランダムな 7 桁の識別番号を受け取るようにする方法を考えていました。私のやり方では、出力で java.util.Random@2a0364ef しか受け取りません。この質問は、私がこの Web サイトに投稿した最初の質問であるため、ヘルプと追加のコメントを楽しみにしています。

    import java.util.Random;

    class Account {

    String id;
    double stan;
    int num;
    static int counter;

    public Account() {
        **id = randomId().toString();**
        stan = 0;
        num = ++counter;

    }

    public Account(String id) {
        this.id = id;
        stan = 0;
        num = ++counter;

    }

    public Account(String id, double mon) {
        stan = 0;
        this.id = id;
        this.stan = mon;
        num = ++counter;

    }

    **static String randomId() {
        Random rand = new Random(7);
        return String.valueOf(rand);**
    }

    String getId() {
        return id;
    }

    double getStan() {
        return stan;
    }

    int getNum() {
        return num;
    }

    @Override
    public String toString() {
        return "Account's id " + getId() + " and balance " + getStan();
    }
}

public class Exc7 {

    public static void main(String[] args) {
        Account account = new Account("0000001"),
                acount0 = new Account("0000002", 1000),
                acount1 = new Account();




        System.out.println(account + "\n" + account0 + "\n" + account1);
    }

}
4

3 に答える 3

2

変化する return String.valueOf(rand);

 return String.valueOf(rand.nextInt());

理由:

valueOf必要な値ではなく、ランダムなオブジェクトをメソッドに渡しています。メソッドを呼び出しnextInt()て、目的のランダム値を取得します。

于 2013-12-22T11:56:11.667 に答える
0

使用する

return String.valueOf(rand.nextInt());

そうしないと、生成できるRandomランダムintではなく、オブジェクトの文字列表現が得られます。

于 2013-12-22T11:56:18.957 に答える
0

次のコードを使用します。

Random rand = new Random(7);
return String.valueOf(Math.abs(rand.nextInt()));

現在、あなたはRandomインスタンスを表しています。

代わりに、ランダムStringの次の数学的絶対値の表現を印刷するintと、うまくいきます。

そのMath.abs部分は重要です。そうしないと、負の数になる可能性があります。

于 2013-12-22T11:56:55.817 に答える