2017-03-12 182 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