2013-01-08 91 views
0

我拿了一個文本文件並將其放入一個數組中。但是,我想在數組內搜索一個String(單詞)。在我的情況下,我想使用掃描儀從用戶獲得輸入,然後在數組中搜索字符串匹配。如何才能完成這樣的任務?陣列文本文件中的搜索字符串

public static void main(String[]args) throws IOException 
{ 
    //Scanner scan = new Scanner(System.in); 
    //String stringSearch = scan.nextLine(); 
    List<String> words = new ArrayList<String>(); 
    BufferedReader reader = new BufferedReader(new FileReader("File1.txt")); 
    String line; 
    while ((line = reader.readLine()) != null) { 
        words.add(line);   
     } 
     reader.close(); 
     System.out.println(words); 
} 

我的輸出:

[CHAPTER I. Down the Rabbit-Hole, Alice was beginning to get very tired of sitting by her sister on the, bank, and of having nothing to do:] 

回答

1

可以使用。載有()函數列表。它將使用.equals()參數的方法,每一個元素

words.contains("your_string") 

剛剛意識到要保存每一個指標線,而不是一個字上。在這種情況下:

for(String sLine : words) { 
    if (sLine.contains("your_string")) { 
     System.out.println("Got a match"); 
     break; 
    } 
} 
1
for(int i = 0; i < words.size(); i++){ 
    if(words.get(i).equals(string)){ 
    found!! 
    } 
} 
+0

他正在添加沒有拆分的總行數。改用String.contains –

0

其他人建議的equals()方法只有在每行有一個字時纔有效。嘗試迭代列表並查看是否有一個(或多個)字符串contains(word)您正在查找的單詞?

0

你可以做一些與掃描儀這樣

Scanner sc = new Scanner(new File("File1.txt")); 
String targetString = "whatYouWant"; 
String testString = sc.next(); 
while(sc.hasNext()) 
{ 
    if(testString.equals(targetString)) 
     hooray! 
} 

這不是一個完整的解決方案,但希望這會引導你到一個有效的解決方案。