2012-09-23 2 views
1

내가 겪고있는 문제는 특정 목록에서 임의로 이름을 생성하는 것입니다. 내 프로그램에서만이 이름을 선택할 수 있기를 바랍니다. Bob, Jill, TomBrandon. 나는 배열을 연구했지만 너무 멀기 때문에 아직 배울 수 없다고 생각합니다. 지금까지 나는 일반적인 생각이 있다고 생각하지만 확실하지 않습니다.주어진 목록에서 무작위로 생성하는 방법?

import java.util.Random; 

public class NameGenerator 
{ 

     public static void main(String[] args) 
     { 

      System.out.println("This is a program that generates random names from a list!"); 

      int Bob = 0; 
      int Jill = 0; 
      int Tom = 0; 
      int Brandon = 0; 
      Random r = new Random(); 

나는 발전기를 얻는 방법에 대해 고심하고 있습니다.

업데이트 : 글쎄, 나는 당신의 충고를 받아 어레이 학습을 시도했다. 지금까지 이것이 내가 가진 것입니다.

ArrayList<String> names = new ArrayList<String>(); 
names.add("Bob"); 
names.add("Jill"); 
names.add("Tom"); 
names.add("Brandon"); 

char index = randomGenerator.nextChar(names.size()); 
String anynames = names.get(index); 
System.out.println("Your random name is" + anynames + "now!"); 

그러나 이제는 randomGenerator를 확인할 수없고 void 메서드가 값을 반환 할 수 없다고 말합니다. 내가 어디로 잘못 갔는지에 대한 어떤 생각?

+0

을 일반적인 힌트. 가능한 이름 목록을 배열 (또는 목록 또는 컨테이너)에 저장 한 다음 임의의 인덱스를 생성하여 목록에서 이름을 선택합니다. – Borgleader

+0

배열은 확실히 당신이 원하는 것입니다. 프로그래밍에 새로운 사람이라면 책이나 좋은 튜토리얼 ("30 일만에 Java 배우기"책은 나쁘지 않다.)를 배우기를 원할 것이다. 자바에 익숙하지 않다면 자바 튜토리얼을 통해 속도를 높일 수있다. .Borgleader가 옳다. 파멸시킬 수 있도록 도와 주겠다. 그 큰 문제. –

+0

내 OP를 업데이트했다. – Tominizer

답변

0

하나의 작은 힌트 - Random r = new Random은 "임의"라는 새 인스턴스를 만들었습니다. Eclipse를 사용하고 있으므로 자동 완성 기능을 사용할 수 있습니다. 무작위 "r"의 인스턴스를 선언 한 후에 r.<somemethod>을 사용하면 유용한 것을 찾을 수 있습니다.

또한 "이름"을 배열에 저장하면 쉽게 접근 할 수 있습니다. 나머지는 알아낼거야.

좋은 코딩 :

3

당신은 ArrayList 셔플과 첫 번째 요소를 가지고, 또는 반복하고 다른 순서로 그들 모두를 취할 수 있습니다.

import java.util.Arrays; 
import java.util.Collections; 
import java.util.List; 

public class NameGenerator { 
    public static void main(String[] args) { 
     String[] peoples = {"Bob","Jill","Tom","Brandon"}; 
     List<String> names = Arrays.asList(peoples); 
     Collections.shuffle(names); 
     for (String name : names) { 
      System.out.print(name + " "); 
     } 
    } 
} 

그렇지 않으면 매번 임의의 번호를 만들고 다른 이름을 사용할 수 있습니다.

 int index = new Random().nextInt(names.size()); 
     String anynames = names.get(index); 
     System.out.println("Your random name is" + anynames + "now!"); 
1

당신은 더 적은 라인을 표현할 수있다 :

String[] names = {"Bob", "Jill", "Tom", "Brandon"}; 
int index = Math.random() * names.length; 
String name = names[index]; 
System.out.println("Your random name is" + name + "now!"); 
0
public static void main(String[] args) { 
    String[] peoples = {"Bob", "Jill", "Tom", "Brandon"}; 
    List<String> names = Arrays.asList(peoples); 
    int index = new Random().nextInt(names.size()); 
    String name = names.get(index); 
    System.out.print(name+ " "); 
3
import java.util.*; 

public class characters 
{ 
    public static void main(String[] args) 
    { 
     Random generate = new Random(); 
     String[] name = {"John", "Marcus", "Susan", "Henry"}; 

     System.out.println("Customer: " + name[generate.nextInt(4)]);  

    } 
} 

이 얼마나 쉽게 참조하십시오? 나는 단어 등으로 대체 될 수있는 4 개의 간단한 이름을 주었다. 코드에서 "4"는 문자열의 이름 수를 나타냅니다. 이것은 얻을 수있는만큼 간단합니다. 그리고 원하는 사람들을 위해 그것은 심지어 짧은 (내가 한 모든 간격 감소했다)이 자신을위한 운동이고 그것이 내가 당신에게 대답을 주면 내가 당신에게 줄 것 "을 망칠 것"이라고 때문에

import java.util.*; 
public class characters{ 
public static void main(String[] args){ 
Random generate = new Random(); 
String[] name = {"John", "Marcus", "Susan", "Henry"}; 
System.out.println("Customer: " + name[generate.nextInt(4)]); }} 
관련 문제