2017-01-09 26 views
-3

這是我的代碼片段。這個if語句允許我從文件中讀取數據,然後從文件中選擇一個隨機單詞並使用print語句,並將其打印出來。使用print語句在Java中返回變量?

我面臨的問題是我需要能夠獲得它選擇的單詞,然後才能夠在下面的String []猜測語句中使用它。我知道我在「{}」中所擁有的是錯誤的,但它只是爲了更好地瞭解我正在嘗試做什麼。

if (choose==1) { 
    System.out.println("you choose easy\n"); 

    FileReader file = new FileReader("file1.txt");//first file 
    BufferedReader reader = new BufferedReader(file); 

    while((reader.readLine()) != null) 
     array.add(reader.readLine()); 

    int randomIndex = random.nextInt(array.size());//randomly pick a word 
    System.out.println(array.get(randomIndex));// randomly print a word 
    reader.close(); 
} 

String[] guess = {array.get(randomIndex)}; 
+0

你的ArrayList的定義在哪裏? –

+1

您的'randomIndex'變量被限制在您想要使用的語句的塊外。通過將它放在相同或父塊中,使其可訪問。 –

+0

爲什麼'guess'被聲明爲一個String數組,當它真的只是一個'String'時,即猜測的單詞呢? – Andreas

回答

1
String word = null; 
if (choose==1) { 
    System.out.println("you choose easy\n"); 

    // Use try-with-resources so it auto closes 
    try (
     FileReader file = new FileReader("file1.txt"); 
     BufferedReader reader = new BufferedReader(file);) { 

     while((reader.readLine()) != null) 
     array.add(reader.readLine()); 

     // randomly pick a word 
     int randomIndex = random.nextInt(array.size()); 
     word = array.get(randomIndex); 

     // print the word 
     System.out.println(word); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
} 

String[] guess = new String[] { word }; 

你可能會是一個列表,而不是一個數組更好,但是這取決於你在做什麼。

+0

這段代碼也是錯的! –

+0

@TedTrippin你是一個傳奇,它正在做我現在需要的東西,現在我非常感謝你 –