2016-11-11 9 views
0

그래서 A부터 E까지 3 개의 임의 문자를 출력하는 프로그램을 만들고 있습니다. 문제는 소문자 A부터 E (A, A, B, B, C, C, D, D, E, E)문자를 출력하는 Java 무작위 클래스

이것은 임의의 문자를 인쇄하는 데 사용됩니다.

letterValue = (char) (rand.nextInt(5) + 'A'); 
System.out.print(letterValue); 

변수 'letterValue'는 대문자와 소문자 모두 A에서 E까지를 출력해야합니다.

+4

'(char) (rand.nextInt (5) + rand.nextBoolean()? '' ''a)) ' – flakes

+0

문자가 달라야합니까? A, b, A가 유효한 출력입니까? A, b, a? –

+0

@flakes가 작동하지 않습니다. – Majestic

답변

1

매우 우아한 방법 중 하나입니다. "임의"로 설정하려는 값이있는 배열을 사용하면됩니다. 그런 다음 배열을 섞습니다. 그리고 당신은 Javas List 클래스로 전환 할 때, 당신은 내장 shuffle 방법을 사용할 수 있습니다

처럼 : 당신이 List<Character> 대신 문자의 배열을 사용하여 주장하는 경우

List<Character> values = Arrays.asList('A', 'a', ...); 
Collections.shuffle(values); 

을 ... 당신이 할 수있는 해당 배열을 그러한 배열로 쉽게 변환 할 수 있으므로 위의 방법을 계속 사용하십시오 (예 : here 참조).

배열을 사용하지 않을 때 "다른 동전을 뒤집기"할 수 있습니다. 의미 : 다른 임의의 값을 얻습니다. 0 또는 1 일 수 있습니다. 0; 그냥 대문자로 유지하십시오. 1의 경우 간단한 소문자 값을 사용하십시오.

(당신은 당신이 'A'에서 너무 '는'사용 "수학", 얻을 수있어 - 당신은 이미 여기에 무엇을하고 있는지에 비슷한)

+0

배열없이 어떻게합니까? – Majestic

+0

답변을 업데이트했습니다. 희망은 도움이됩니다. – GhostCat

0
 letterValue = (char) (rand.nextInt(5) + 'A'); 
     if (rand.nextBoolean()) { 
      letterValue = Character.toLowerCase(letterValue); 
     } 
     System.out.print(letterValue); 

이 많은 중 하나의 방법입니다 . 나는 당신 자신의 코드를 사용하고 있으며, 필요 이상으로 작업을 복잡하게 만들지 않으려 고 노력합니다. 3 개의 임의의 문자를 원했기 때문에 3 번 실행했는데 d, dC을 인쇄했습니다.