JavaRush/Java блог/Архив info.javarush/Генерация строки фиксированной длины
ttt
30 уровень

Генерация строки фиксированной длины

Статья из группы Архив info.javarush
участников
Всем добрый день! Понадобилось мне написать функцию, генерирующую строку фиксированной длины. Собственно на первый взгляд это просто, так оно и есть, но вот возникло желание сделать эту функцию максимально быстрой. И тут возник впрос - а как? Собственно соорудил такой код. Самый быстрый пока метод generateString, но я верю, что его можно ускорить еще. 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(); } }
Комментарии (4)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
sergiiko
Уровень 32
1 февраля 2016, 12:10
А зачем это нужно? :-)
И чем не устраивают стандартные средства форматирования строки?
ttt
Уровень 30
1 февраля 2016, 12:52
Если честно, то вчера завел для себя репозитарий на гитхабе, но скидывать туда нечего( джаварашовские сорсы то нельзя), вот и решил туда позаливать какие-нить самописные библиотечки. Выбрал для этого строки.
ferasinka
Уровень 32
1 февраля 2016, 23:27
Осталось написать JavaDoc ;-)
ttt
Уровень 30
2 февраля 2016, 10:26
Ну это пока первый метод))) А так задумка была сделать генерацию строк по шаблонам, по регексам.