Как увеличить строку Java через все возможности? - PullRequest
17 голосов
/ 05 декабря 2008

Мне нужно увеличить строку в java с "aaaaaaaa" до "aaaaaab" до "aaaaaac" вверх по алфавиту, а затем со временем до "aaaaaaba" на "aaaaaabb" и т. Д. И т. Д.

Есть ли хитрость для этого?

Ответы [ 13 ]

0 голосов
/ 05 декабря 2008

Это не так уж много "трюк", но это работает для 4-символьных строк. Очевидно, что для более длинных строк это становится уродливее, но идея та же.

char array[] = new char[4];
for (char c0 = 'a'; c0 <= 'z'; c0++) {
  array[0] = c0;
  for (char c1 = 'a'; c1 <= 'z'; c1++) {
    array[1] = c1;
    for (char c2 = 'a'; c2 <= 'z'; c2++) {
      array[2] = c2;
      for (char c3 = 'a'; c3 <= 'z'; c3++) {
        array[3] = c3;
        String s = new String(array);
        System.out.println(s);
      }
    }
  }
}
0 голосов
/ 05 декабря 2008

Иметь массив байтов, который содержит значения ascii, и цикл, который увеличивает крайнюю правую цифру при переносе.

Затем создайте строку, используя

public String(byte[] bytes, String charsetName)

Убедитесь, что в кодировке указано однозначное значение US-ASCII или UTF-8.

0 голосов
/ 05 декабря 2008

Я бы создал массив символов и увеличивал символы по отдельности. Строки являются неизменяемыми в Java, поэтому каждое изменение будет создавать новую точку в куче, что приведет к росту и увеличению памяти.

С массивом символов у вас не должно быть этой проблемы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...