JavaRush /Java Blog /Random-TL /Pagbuo ng Fixed Length String
ttt
Antas
Симферополь

Pagbuo ng Fixed Length String

Nai-publish sa grupo
Magandang hapon sa lahat! Kailangan kong magsulat ng isang function na nakabuo ng isang fixed-length na string. Sa totoo lang, sa unang sulyap ito ay simple, iyon ang paraan, ngunit may pagnanais na gawin ang pagpapaandar na ito nang mas mabilis hangga't maaari. At pagkatapos ay lumitaw ang tanong - paano? Sa totoo lang, binuo ko ang code na ito. Ang pinakamabilis na paraan sa ngayon ay ang generateString, ngunit naniniwala ako na mas mapapabilis pa ito. 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(); } }
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION