JavaRush /Blog Java /Random-VI /Tạo một chuỗi có độ dài cố định
ttt
Mức độ
Симферополь

Tạo một chuỗi có độ dài cố định

Xuất bản trong nhóm
Chào buổi chiều mọi người! Tôi cần viết một hàm tạo ra một chuỗi có độ dài cố định. Thực ra, thoạt nhìn thì nó đơn giản, vốn là như vậy, nhưng người ta mong muốn làm cho chức năng này hoạt động nhanh nhất có thể. Và rồi câu hỏi nảy sinh - làm thế nào? Thực ra tôi đã xây dựng mã này. Phương pháp nhanh nhất cho đến nay là generateString, nhưng tôi tin rằng nó có thể được tăng tốc hơn nữa. 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(); } }
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION