随机打印字符串数组内容



随机打印数组内容的代码,结果是随机打印内容,可以使用 Math.Random(( 执行此操作;

public class Random {
public static void main(String args[]) throws Exception {             
String[] Answers = new String[4];
Answers[0] = "OS";
Answers[1] = "GOOD";
Answers[2] = "CS";
Answers[3] = "Cody";  
for(int n=0;n<Answers.length;n++) {
System.out.print(Answers);  
}
}
}      

上面的代码打印

[Ljava.lang.String;@1db9742[Ljava.lang.String;@1db9742[Ljava.lang.String;@1db9742[Ljava.lang.String;@1db9742

希望它打印 CS,OS,GOOD,CODY 或 OS,CODY,GOOD,CS 等

简单的解决方案

public static void permuteString(String beginningString, String endingString) {
String[] answers = new String[4];
answers[0] = "OS";
answers[1] = "GOOD";
answers[2] = "CS";
answers[3] = "Cody";
List<String> answersList = Arrays.asList(answers);
Collections.shuffle(answersList);
System.out.println(Arrays.toString(answersList.toArray(new String[0])));
}

数组类具有多个实用程序方法

String[] Answers = new String[4];
Answers[0] = "OS";
Answers[1] = "GOOD";
Answers[2] = "CS";
Answers[3] = "Cody";
System.out.println(Arrays.toString(Answers));

使用随机,您可以像下面这样操作:

public class Test
{
public static void main(String args[]) throws Exception
{
String[] answersArray = new String[4];
answersArray[0] = "OS";
answersArray[1] = "GOOD";
answersArray[2] = "CS";
answersArray[3] = "Cody";
List<String> answersList = new ArrayList<String>(Arrays.asList(answersArray));
final Random randomNumber = new Random();
final int low = 0;
int high = 0;
while(!answersList.isEmpty()){
high = answersList.size();
int result = randomNumber.nextInt(high - low) + low;
System.out.print(answersList.get(result) + " ");
answersList.remove(result);
}
}
}

试试这个

public static void main(String args[]) throws Exception {
String[] answers = new String[4];
int len = answers.length;
answers[0] = "OS";
answers[1] = "GOOD";
answers[2] = "CS";
answers[3] = "Cody";
int random = getRandomNum(len);
System.out.println("random: " + random);
System.out.println(answers[random]);
}
private static int getRandomNum(int max) {
int rand = (int) (Math.random() * 100);
if (rand < max)
return rand;
return getRandomNum(max);
}

输出

运行 1

random: 3
Cody

运行 2

random: 1
GOOD

如果必须在一次运行中随机打印所有元素,请更新,这将有所帮助

public static void main(String args[]) throws Exception {
String[] answers = new String[4];
int len = answers.length;
answers[0] = "OS";
answers[1] = "GOOD";
answers[2] = "CS";
answers[3] = "Cody";
for (int i = 0; i < len; i++) {
int random = getRandomNum(len);
System.out.println("random: " + random);
System.out.println(answers[random]);
}
}
private static int getRandomNum(int max) {
int rand = (int) (Math.random() * 100);
if (rand < max)
return rand;
return getRandomNum(max);
}

输出

random: 1
GOOD
random: 3
Cody
random: 0
OS
random: 2
CS

更新如果您不希望输出中有任何重复的值,请转到这个简单而简短的方法

public static void main(String args[]) throws Exception {
String[] answers = new String[4];
answers[0] = "OS";
answers[1] = "GOOD";
answers[2] = "CS";
answers[3] = "Cody";
List<String> list = Arrays.asList(answers);
System.out.println("Before: " + list.toString());
Collections.shuffle(list);
System.out.println("After: " + list.toString());
}

输出

Before: [OS, GOOD, CS, Cody]
After: [Cody, OS, GOOD, CS]

希望这对:)有所帮助

您正在打印数组的地址或引用。您需要打印存储在数组中的元素,因此需要使用索引访问它。由于您想向其添加随机功能。你做这样的事情——

import java.util.*;
//Random is itself a class in java inside java.util
class Abc {
public static void main(String args[]) throws Exception {             
String[] Answers = new String[4];
Answers[0] = "OS";
Answers[1] = "GOOD";
Answers[2] = "CS";
Answers[3] = "Cody";  
Random rn = new Random();
int freq[]=new int[Answers.length];
for(int n=0;n<Answers.length;n++) {
int index = rn.nextInt(Answers.length);
if(freq[index]==0) {
freq[index]+=1;
System.out.println(Answers[index]);       
} else {
n-=1;   
}
}
}
}

不要使用Random作为您的类名,因为它预定义了 java 类名。使用随机类获取随机整数。

public class RandomStringExample{
public static void main(String args[]) throws Exception {             
String[] Answers = new String[4];
Answers[0] = "OS";
Answers[1] = "GOOD";
Answers[2] = "CS";
Answers[3] = "Cody";
System.out.println(getRandomString(Answers));
}
public static String getRandomString(String[] answers) {
Random random = new Random();
int n = random.nextInt(answers.length-1);
return answers[n];
}
}  

您应该提供带有名称的数组索引。

喜欢这个:

System.out.print(Answers[n]);

首先,您需要更改打印语句

String[] Answers = new String[4];
Answers[0] = "OS";
Answers[1] = "GOOD";
Answers[2] = "CS";
Answers[3] = "Cody";  
for(int n=0;n<Answers.length;n++) {
System.out.print(Answers[n].toString() + " " );              
}

然后,您需要使用随机数生成器从您的答案数组中选择一个介于 1 和 4 之间的随机数

最新更新