2014-10-26 37 views
0

我有一個約10000個單詞的文本文件,每個單獨一行。該程序需要從控制檯讀取一個整數。然後,程序需要將每個單詞保存在test.txt中,其中單詞的長度對應於用戶輸入到數組列表中的數字。如何獲得從txt到數組的具體長度

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Scanner; 
import java.util.regex.Pattern; 

public class diplomska { 

    public static void main(String[] args) { 

     String besede[] = new String[10000]; 
     int i = 0; 
     System.out.println("Vnesi dožino besede, ki jo iščeš"); 
     Scanner in = new Scanner(System. in); 
     int dolzina = in .nextInt(); 

     try { 
      try { 
       Scanner vrstica = new Scanner(new File("test.txt")); 
       vrstica.useDelimiter(System.getProperty("line.separator")); 
       String ln = vrstica.next(); 

       if (i == dolzina) 


      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
+2

請首先檢查您的代碼,因爲在打開和關閉大括號時出現錯誤,請確保您發佈代碼時必須妥善打算並且具體 – 2014-10-26 17:25:16

+0

如果其中一個回答回答了您的問題,請接受它作爲答案。 – FuriousFolder 2014-12-01 17:38:02

回答

1

字符串的長度可以用字符串的length()方法測量。 所以i = ln.length()

如果你的目標是要輸出的話

使用System.out.println(ln);

如果你的目標是要保存的話

與陣列的問題是,他們不是動態的長度。使用Lists。您可以使用add(T t)方法添加匹配元素。您可以使用int size()方法獲得號碼。刪除解決方案可以通過clear()方法完成。

1

變化

(i==dolzina) 

if(ln.length()==dolzina) 

後,使用System.out.println(ln);

沒有必要保存字符串數組,因爲你的最終目標是簡單地打印出所有的字符串,其中長度由用戶提供。

+0

我需要保存到數組,因爲後來我需要用來輸入讓我們說P ??? aa並獲得可能的結果(?meaining任何字母) – 2014-10-26 17:41:38

+0

在這種情況下,正如Terry Storm建議的那樣,您應該使用一個列表。列表允許您在常量時間內添加元素。只要您不需要刪除添加的元素,列表就會運行良好。 你需要檢查重複嗎?如果是這樣,你可以考慮一個HashMap – FuriousFolder 2014-10-27 14:20:30

0

您需要遍歷單詞列表。

while (vrstica.hasNext()) { 
    String ln = vrstica.next(); 
    if (ln.length() == dolzina) { 
     // save to the array 
     besede[i] = ln; 
     i++; 
    } 
} 

你也可以使用一個List不是數組的,因爲它的大小是動態的。

相關問題