簡體   English   中英

如何檢查文本文件以查看其是否包含字符串?

[英]How to check a text file to see if it contains a string?

我正在編寫一個類,該類讀取文本文件(dictionary.txt)的內容,並使用isValidWord方法,該方法返回true或false取決於用戶輸入的字母是否在文本文件中形成單詞

用戶輸入的字母通過“ Tile”對象來實現(我已經編寫了Tile類,該類具有返回字母的getLetter方法)。 因此,將Tile對象的ArrayList傳遞給isValidWord方法。

構造函數采用文件名的字符串(驅動程序將其傳遞給dictionary.txt)。 然后,構造函數將文件的內容讀取到字符串ArrayList中。

isValidWord方法采用一個Tile對象的ArrayList。 每個平鋪對象都包含一個字母,因此,我使用Tile類中的getLetter方法將每個平鋪對象的字母附加到字符串中。

然后,我嘗試通讀文本文件dictionary.txt,並查看該文件是否包含前一部分的字符串。 如果是,則isValid設置為true。

private boolean isValid;
private String str;
private ArrayList<String> list = new ArrayList<String>();

public Dictionary(String fileName) throws IOException
{

      File file = new File(fileName);
      Scanner s = new Scanner(file);
      while (s.hasNextLine())
      {
         list.add(s.nextLine());
      }
      str = "";
      isValid = true;
}

public boolean isValidWord(ArrayList<Tile> tiles) throws IOException
{     

      StringBuilder sb = new StringBuilder(); 
      for(int i=0; i< tiles.size(); i++)
      {
         sb.append(tiles.get(i).getLetter());
      } 

      str = sb.toString();  

      File file = new File("dictionary.txt");
      Scanner s = new Scanner(file);

      while (s.hasNextLine())
      {

         String line=s.nextLine();

         if(line.contains(str))
         {
            isValid = true;
         }
         else
            isValid = false;
      }   

      return isValid;
}

我的問題是,無論如何,isValidWord始終返回false。 我已經測試了變量str(實際上是從tile對象形式打印字符串的字母),但是由於某種原因,if語句永遠不會被滿足

刪除臨時的isValid變量; 即使該文件包含單詞,除非您立即返回,否則下一次迭代會使該單詞為false (並且您不需要它)。 喜歡,

while (s.hasNextLine())
{
    String line=s.nextLine();
    if(line.contains(str))
    {
        return true;
    }
}   
return false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM