2012-06-06 107 views
-3

我試圖從4個字符串中隨機選擇一個字符串,並在控制檯上顯示這個字符串。我該怎麼做 ?例如,有一個問題,如果用戶正確回答,那麼控制檯將顯示我選擇的一個字符串。我知道如何隨機選擇一個整數值,但我無法弄清楚如何隨機選擇一個字符串。請幫忙?在java中隨機使用字符串?

+4

你需要發佈你試過的東西 –

回答

2

使用您隨機選擇的整數值作爲您的字符串數組的索引。

5
  1. 將你的字符串放在一個數組中。
  2. 然後從Random類中得到一個隨機整數,它位於數組長度的範圍內(查看模%運算符以瞭解如何執行此操作;或者,通過傳遞來限制對random.nextInt()的調用一個上限)。
  3. 通過索引到剛剛獲得數字的數組中獲取字符串。
7
import java.util.Random; 
public class RandomSelect { 

    public static void main (String [] args) { 

     String [] arr = {"A", "B", "C", "D"}; 
     Random random = new Random(); 

     // randomly selects an index from the arr 
     int select = random.nextInt(arr.length); 

     // prints out the value at the randomly selected index 
     System.out.println("Random String selected: " + arr[select]); 
    } 
} 

使用的charAt:

import java.util.Random; 
public class RandomSelect { 

    public static void main (String [] args) { 

     String text = "Hello World"; 
     Random random = new Random(); 

     // randomly selects an index from the arr 
     int select = random.nextInt(text.length()); 

     // prints out the value at the randomly selected index 
     System.out.println("Random char selected: " + text.charAt(select)); 
    } 
} 
+0

另外,我怎樣才能做到這一點使用indexOf()? –

+0

我更新了答案,從字符串中隨機選擇一個字符。你想用indexOf()來做什麼? indexOf()用於定位字符串中的子字符串。 –

0

洗牌(名單列表) 隨機的置換使用隨機的默認源指定列表。

// Create a list 
List list = new ArrayList(); 

// Add elements to list 
.. 

// Shuffle the elements in the list 
Collections.shuffle(list); 
list.get(0); 
+0

技術上雖然解決了這個問題,但這可能是最低效率的方式。看到我的回答如下 – Matt

+0

你是對的,但對於這樣的事情,我肯定是一個家庭作業,我只是想給一個替代方法。 –

0
Random r = new Random(); 
System.out.println(list.get(r.nextInt(list.size()))); 

這將產生0 [包容]和則爲list.size之間的隨機數()[非包含]。 然後,只需將該索引從列表中取出即可。

1
String[] s = {"your", "array", "of", "strings"}; 

Random ran = new Random(); 
String s_ran = s[ran.nextInt(s.length)];