我有两个有价值的字符串"好"和"坏"
我将其中一个(例如" good")发送给方法作为参数,当在同一个类中再次调用相同的方法时,我想要使用带有值的第二个变量(&# 34;坏")作为参数传递。
我找不到更好的解决方案。
我有另外一种方法是写一个小函数来随机选择这个变量。
public static Set<String> selectRandomString() {
Random r = new Random();
int firstR = r.nextInt((2 - 0) + 1) + 0;
List<String> animals = Arrays.asList( new String[] { "good", "bad"});
Set<String> returnAnimals = new HashSet<String>();
if (firstR > 0) {
int animalCount = r.nextInt((firstR - 0) + 1) + 0;
String temp = animals.get(animalCount);
returnAnimals.add(temp);
}
return returnAnimals;
}
答案 0 :(得分:1)
public class ToggleStrings {
static Random r = new Random();
public static String toggleString() {
return r.nextBoolean() ? "good" : "bad";
}
public static void main( String[] args ) {
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
System.out.println( toggleString());
}
}
执行追踪:
bad
bad
good
bad
bad
bad
bad
good
bad
good
答案 1 :(得分:1)
您可以使用变量“记住”上一个答案。 此代码将始终在“好”和“坏”之间切换。
class Utils {
static boolean toggle;
public static String getString() {
toggle = !toggle;
if (toggle)
return "good";
else
return "bad";
}
}
答案 2 :(得分:1)
我还有另外一个棘手的方法:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RandomList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>(){{
this.add("good");
this.add("bad");
}};
Collections.shuffle(list);
System.out.println(list.get(0));
Collections.shuffle(list);
System.out.println(list.get(0));
Collections.shuffle(list);
System.out.println(list.get(0));
}
}
输出:
bad
good
good