2

私が直面している問題は、特定のリストからランダムに名前を生成することです。私のプログラムは、Bob、Jill、Tom、およびBrandonの名前からのみ選択できるようにしたいと考えています。配列を勉強してみましたが、まだ学ぶには少し遠すぎると思います。これまでのところ、私は一般的な考えを持っていると思いますが、よくわかりません。

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 メソッドは値を返すことができないと言われています。私が間違っていた場所についてのアイデアはありますか?

4

6 に答える 6

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)]);      

    }
}

それがどれほど簡単か見てみましょう。言葉などに置き換えることができる簡単な名前を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)]); }}
于 2016-02-16T19:55:21.187 に答える
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!");
于 2012-09-23T07:08:17.440 に答える
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!");
于 2012-09-23T07:21:39.350 に答える
0

1 つの小さなヒント - Random r = new Random「ランダム」の新しいインスタンスを作成しました。Eclipse を使用しているため、オートコンプリートがあります。Random "r" のインスタンスを宣言した後、使用r.<somemethod>すると便利なものが見つかる場合があります。

また、「名前」を配列に格納すると、かなり簡単にアクセスできます。残りはあなたに任せます。

良いコーディング:)

于 2012-09-23T03:28:28.687 に答える
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+ " ");
于 2014-10-19T15:15:30.567 に答える