2016-05-02 17 views
-2

私は、固有の番号を自動生成するためのガイダンスが必要です。私はこれをやったことがないので、どこから始めたらいいのか分からず、誰かが私を助けてくれるのだろうかと思っていました。ユニークな番号を自動生成JAVA

1文字の後に4桁の数字を自動的に生成する必要があります。例:b1678でも番号は同じではないことを保証します(30種類の異なるものに対して行う必要があります)

ありがとうございました!

+3

まず: 「ユニーク」は本当に何を意味しますか?プログラムの1つのインスタンスが実行されている間は "一意"です。それを実行しているすべてのマシン上のすべての実行に対して「一意」または「一意」を指定しますか? Second:SOはこのようには機能しません。要件を削除するのではなく、これまでに行ったことを**表示しています。また、ブロックされた場所について具体的な質問をします。しかし、他の人々がすぐに使えるコードをあなたに提供するとは思わないでください。 – GhostCat

+0

https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/RandomStringUtils.html – soorapadman

+0

@Jägermeisterdi * kにする必要はありません。まず、私は本当に**ユニークな**ユニークなものが誰にでも明らかだと思います。第二に、私はこれを行う方法についてのガイダンスだけを求めていることをかなり明白にしたと思います。なぜならこれまでこれほどのことはやっていないし、自分自身を初心者だと思うからです。それは高く評価されますが、あなたが何かいいか役立たないと言っても、何も言わないのはどうですか? :) – Jack

答えて

1

あなたは数字のみを使用する場合は、あなたが与えているフォーマットについて

public void Integer getRandom() { 
     ArrayList<Integer> list = new ArrayList<Integer>(); 
     for (int i=1; i<n; i++) { 
      list.add(new Integer(i)); 
     } 
     Collections.shuffle(list); 
     return list.get(0); 
    } 
0

を使用し、UUID u = UUID.randomUUID();

を使用し、一意の識別子をしたい場合は、あなたが行うことができます:

Random r = new Random(); 
String str = ""+((char)(r.nextInt(26)+97)); // for the first character 
while(str.length()<5) //to add only till the length is less than 5. 
{ 
    int n = r.nextInt(10); // get new number 
    if(!str.contains(n+"")) str+=n; // add only if it does not already contain the number. 
} 
+0

これに問題がありますか? – Hackerdarshi

関連する問題