2017-03-12 147 views
0

我有2串用之间切换值“好”与“坏”爪哇 - 两个字符串

我送的这一个(说“好”)作为参数的方法,当同样的方法被调用再次在同一个类中,我想使用值(“坏”)的第二个变量作为参数传递。

我找不到更好的解决方案。

我有这样做的替代方法是编写一个小函数来随机选择这个变量。

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; 
} 
+2

目前还不清楚你想要做什么。 – janos

+1

你真正的问题是什么? –

回答

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

你可以只使用一个变量来 “记住” 以前的答案。 此代码将始终在“好”和“坏”之间交替。

class Utils { 
    static boolean toggle; 
    public static String getString() { 
     toggle = !toggle; 
     if (toggle) 
      return "good"; 
     else 
      return "bad"; 
    } 
} 
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