JavaRush /Java-Blog /Random-DE /Generieren einer Zeichenfolge mit fester Länge
ttt
Level 30
Симферополь

Generieren einer Zeichenfolge mit fester Länge

Veröffentlicht in der Gruppe Random-DE
Guten Abend allerseits! Ich musste eine Funktion schreiben, die eine Zeichenfolge fester Länge generierte. Eigentlich ist es auf den ersten Blick einfach, aber es bestand der Wunsch, diese Funktion so schnell wie möglich zu machen. Und dann stellte sich die Frage: Wie? Eigentlich habe ich diesen Code erstellt. Die bisher schnellste Methode ist „generateString“, aber ich glaube, dass sie noch weiter beschleunigt werden kann. public class StringGenerator{ private int strLength; private StringGenerator() { } public static StringGenerator getStringFixedLengthGenerator(int length){ StringGenerator stringGenerator = new StringGenerator(); stringGenerator.setStrLength(length); return stringGenerator; } public void setStrLength(int strLength) { this.strLength = strLength; } public String generateNextFixedString(){ return new String(); } public String generateThreadString() { ExecutorService executor = Executors.newSingleThreadExecutor(); Callable task = () -> { return generateString(strLength/2); }; Future future = executor.submit(task); Future future1 = executor.submit(task); String str = ""; try{ str = future1.get().concat(future.get()); }catch (Exception e){ } executor.shutdown(); return str; } public String generateString(){ return generateString(strLength); } public String generateString(int stringLength) { String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; Random rng = new Random(); char[] text = new char[stringLength]; for (int i = 0; i < stringLength; i++) { text[i] = characters.charAt(rng.nextInt(characters.length())); } return new String(text); } public String createRandomString() { String mCHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; int STR_LENGTH = strLength; // длина генерируемой строки Random random = new Random(); StringBuilder builder = new StringBuilder(); for (int i = 0; i < STR_LENGTH; i++) { int number = random.nextInt(mCHAR.length()); char ch = mCHAR.charAt(number); builder.append(ch); } return builder.toString(); } }
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION