1

以下のコードは正常にコンパイルされますが、桁数が生成されません

ganerateNewRandom("aaaa", 3)

結果は になりますaaa435

以下のコードは正常にコンパイルされますが、桁数が生成されません

import java.util.*;

public class Student
{
    private String studentId;

    private String name;

    private Random random;


    public Student( String name)

    {
        studentId = "UnKnow";

        this.name = name;

        random = new Random();

    }

    public String ganerateNewRandom(String prefix, int number)

    {

        int index = random.nextInt(number);

        return prefix + number + "";
    }
}
4

3 に答える 3

4
 public String ganerateNewRandom(String prefix, int number) {  //sic

    StringBuffer ret = new StringBuffer(prefix);

    for(int i=0;i<number;i++) ret.append(random.nextInt(1000));

    return ret.toString();

}

上記の場合、nextInt(3) は 0、1、または 2 のいずれかを返します。探しているものは何もありません。

于 2013-03-28T13:57:19.123 に答える
2

Random.nextInt(int n)州の API :

0 (0 を含む) と指定された値 (0 を含まない) の間の一様分布の疑似乱数の int 値を返します。

3 つの乱数を生成する場合は、生成する番号for-loopを追加する を作成し、それを に追加します。nRandomprefix

于 2013-03-28T14:00:16.163 に答える
1

おそらくString.formatここで使用する価値があります:

static private Random random = new Random();

public static String ganerateNewRandom(String prefix, int digits) {
  return String.format("%s%03d", 
                       prefix, 
                       random.nextInt((int)Math.pow(10, digits)));
}

ノート:

  • パラメータ torandom.nextIntは上限であり、桁数ではありません。必要な10^digits数を取得する必要があります。
  • を使用%03dすると、100 未満の任意の数値がゼロで埋められます。
于 2013-03-28T14:28:32.573 に答える