Я хочу перетасовать определенную строку для задания. Когда я пытаюсь это сделать, он бросает NullPointerException
.Проблемы с перетасовкой символов в строке
for (char d : masterCode.toCharArray()) {
possibleLetters.add(d);
}
Collections.shuffle(possibleLetters);
for (char c : possibleLetters) { // arraylist of characters
sb.append(c); //stringbuilder
masterCode = sb.toString();
}
Так что я попытался это по-другому:
masterCode = masterCode.substring(0, 4);
for (char d : masterCode.toCharArray()) {
possibleLetters.add(d);
}
Collections.shuffle(possibleLetters);
for (char c : possibleLetters) { // arraylist of characters
//sb.append(c); //stringbuilder
masterCode = masterCode.concat(Character.toString(c)); // string
}
, но это не дает ожидаемого результата либо. masterCode
- ECAB сначала, затем для следующего вывода CCBA.
masterCode
- это строка из произвольно сгенерированных символов, не допускающая дубликатов, в другом методе.
Вопрос: что это хороший способ исправить это?
Вы инициализируете 'sb'? – Eran
попытайтесь работать с 'Char', а не' char' – roeygol
Во втором примере: вы добавляете эти символы в существующий String 'masterCode'. Старое содержимое этой строки все еще существует. – Tom