2

重複の可能性:
JavaでUUIDを生成する

製品の裏側で使用されているような9桁の一意のコードを生成してそれらを識別する必要があります。

コードは繰り返さないようにする必要があり、番号間に相関関係がないようにする必要があります。また、コードはすべて整数である必要があります。

Javaを使用してそれらを生成し、同時にデータベースに挿入する必要があります。

4

4 に答える 4

6

9桁の乱数を生成し、データベースと照合して一意性を確認します。

100000000 + random.nextInt(900000000)

また

String.format("%09d", random.nextInt(1000000000))
于 2012-09-30T08:09:50.887 に答える
2

CommonsLangのrandomNumeric方法を使用します。

http://commons.apache.org/lang/api-2.6/org/apache/commons/lang/RandomStringUtils.html#randomNumeric(int

それでも、データベースの一意性を確認する必要があります。

于 2012-09-30T08:53:57.283 に答える
0
        int noToCreate = 1_000; // the number of numbers you need
        Set<Integer> randomNumbers = new HashSet<>(noToCreate);

        while (randomNumbers.size() < noToCreate) {
            // number is only added if it does not exist
            randomNumbers.add(ThreadLocalRandom.current().nextInt(100_000_000, 1_000_000_000));
        }
于 2012-09-30T07:58:38.003 に答える
-1

これを行うのは少し奇妙なことですが、それでも、互いにほとんど関係のない一意の9桁の数字を使用できると思います。

お願いしますthere should have no correlation between the numbers

public class NumberGen {

    public static void main(String[] args) {

        long timeSeed = System.nanoTime(); // to get the current date time value

        double randSeed = Math.random() * 1000; // random number generation

        long midSeed = (long) (timeSeed * randSeed); // mixing up the time and
                                                        // rand number.

                                                        // variable timeSeed
                                                        // will be unique


                                                       // variable rand will 
                                                       // ensure no relation 
                                                      // between the numbers

        String s = midSeed + "";
        String subStr = s.substring(0, 9);

        int finalSeed = Integer.parseInt(subStr);    // integer value

        System.out.println(finalSeed);
    }

}
于 2012-09-30T08:35:33.597 に答える