0

したがって、ランダムな文字列を生成したいのですが、特定の文字のみを文字列にする必要があります(ホストされるファイル名で使用できるもののみ、www.example.com/HERE.EXTENTION のようなものです)。

では、必要な特定の文字のみを使用して、必要な長さのランダムな文字列を作成するにはどうすればよいでしょうか。

長さから for ルックを実行し、乱数を使用してそれを char にキャストし、それを文字列に追加できることを知っています。しかし、追加したくないキャラクターを追加したり、不要なすべてのループを実行したりしたくないのは、時間がかかりすぎるためです.

4

3 に答える 3

3

次の簡単な方法を使用します。

String genRand(int length){
   Random rand=new Random();
   String possibleLetters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.";   
   StringBuilder sb = new StringBuilder(length);
   for(int i = 0; i < length; i++) 
      sb.append(possibleLetters.charAt(rand.nextInt(possibleLetters.length())));
   return sb.toString();
}

必要な文字を含めるように編集possibleLettersします。\および改行はエスケープする必要があることに注意してください。

于 2013-07-07T16:58:36.793 に答える
1

受け入れたすべての文字を配列に格納し、0 からこの配列の長さまでの乱数を N 回生成して、配列内の文字の N インデックスを取得します。文字を連結します。

編集:

目標が一意の名前を生成することである場合、ランダムは解決策ではないことに注意してください。ランダムは一意性を保証しません。

于 2013-07-07T16:58:45.753 に答える
0

2つの答え以外 -

のようにすることができます<yourChoiceOfName>-<currentTime>.yourext。このようにして、同じ名前の 2 つのファイルが存在する可能性が低くなります。

currenttimeを含めることができますmilliseconds

この場合、既知の長さ、つまり長さyourChoiceOfName+ 長さ + 長さ がcurrentTimeありyourextます。

于 2013-07-07T17:03:20.933 に答える