과제의 특정 문자열을 섞기를 원합니다. 이런 식으로하려고하면 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
두 번째 예제에서 :이 문자열을 기존 문자열'masterCode'에 추가합니다. 이 문자열의 이전 내용은 여전히 존재합니다. – Tom