随机打印出精确数量的特定字符

时间:2017-09-26 07:48:53

标签: java

这是我学习Java的第一个月,也是我在这里的第一个问题,请注意新手的错误或者我忽略了一些明显的问题。

我有作业,程序首先要求用户给出一个数字。然后程序将从O(大),o(小)和0(零)的选择中随机打印出该数量的字符。所以数字和字母。

! 所以我的主要问题是如何使用Java执行特定字符的随机打印? !

这是我尝试做的事情,但是自从第一批评论员提出要求以来,我决定发布它;

    public class ASCIIFISH{
    public static void main(String[] args) {


        System.out.println("Hello! How many bubbles is coming from the fish? :-)");
        int kuplat = In.readInt();


        System.out.println( (int) (Math.random(0) * 10) + ">}}}`>");

    }
}

编辑; 好的,所以我到了这一点;

public class ASCIIFISH{
public static void main(String[] args) {


System.out.println("Moikkelismoi! Kuinka monta kuplaa toivoisit kalan liikehdinnästä syntyvän? :-))");
int kuplat = In.readInt();

 for (int i=0; i<kuplat; i++){
 System.out.print( (int) (Math.random() * 3) );
}

 switch(){

 }

 System.out.println(">}}}`>");

 }
 }

现在程序随机打印出用户的0s,1s和2s数量,我所需要的只是将1s和2s改为o和o和o。有什么想法吗?

好的,这就行了;

 public class ASCIIFISH{
public static void main(String[] args) {

// Luetaan käyttäjältä kuplien lukumäärä.
System.out.println("Moikkelismoi! Kuinka monta kuplaa toivoisit kalan liikehdinnästä syntyvän? :-))");
int kuplat = In.readInt();

// Luodaan laskuri joka vertaa itseään käyttäjän antamaan kuplien lukumäärään...
// ...ja muuttuja joka arpoo lukuja väliltä 0-2.
for (int i=0; i<kuplat; i++){
int valinta = ( (int)(Math.random() * 3) );

// Muutetaan tulostuvat (0,1,2) luvut 0,o,O -merkeiksi sekä tulostetaan ne.
if (valinta == 0){
System.out.print("0");
}
else if(valinta == 1){
System.out.print("o");
}
else if(valinta == 2){
System.out.print("O");
}
}

//Tulostetaan itse kala (mahdollisten) kuplien perään.
System.out.println(">}}}`>");
}
}

3 个答案:

答案 0 :(得分:0)

你可以生成一个随机数1-K,其中K是可能性的数量(3,如果我理解正确的话),然后使用这个数字和switch / case来选择哪个字符根据号码打印。

答案 1 :(得分:0)

有更好的方法,但是。

double d = Math.random();
if(d>0.5){
    System.out.println("a");
} else{
    System.out.println("b");
}

那将随机打印出a或b。

答案 2 :(得分:0)

您可以将所需的字符放入数组

String[] data = new String[]{"o", "0", "O"};

然后根据用户输入在数组上运行一个循环,并每次打印一个随机的:

for (int i = 0; i < kuplat; i++) {
            Random r = new Random();
            int num = r.nextInt(data.length);
            System.out.println(data[num]);
        }