gpt4 book ai didi

java - 如何检查文本文件是否包含字符串?

转载 作者:行者123 更新时间:2023-12-02 10:02:51 26 4
gpt4 key购买 nike

我正在编写一个类,该类读取文本文件 (dictionary.txt) 的内容并使用 isValidWord 方法,该方法根据用户输入的字母是否在文本文件中构成单词而返回 true 或 false

用户输入的字母来自“Tile”对象(我编写了 Tile 类,它有一个返回字母的 getLetter 方法)。因此,Tile 对象的 ArrayList 被传递给 isValidWord 方法。

构造函数采用文件名字符串(驱动程序将其传递给dictionary.txt)。然后,构造函数将文件的内容读取到字符串的 ArrayList 中。

isValidWord 方法采用 Tile 对象的 ArrayList。每个图 block 对象都包含一个字母,因此我使用 Tile 类中的 getLetter 方法来获取每个图 block 对象的字母,同时将其附加到字符串中。

然后,我尝试通读文本文件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 (它确实打印了平铺对象形式的字母字符串),但由于某种原因, if 语句永远不会被满足

最佳答案

删除临时isValid变量;即使文件包含该单词,除非您立即返回,否则您的下一次迭代会使该 false (并且您不需要它)。就像,

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

关于java - 如何检查文本文件是否包含字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com