【问题标题】:Java Word Guess Game check valid word [closed]Java Word Guess Game检查有效单词[关闭]
【发布时间】:2016-03-25 04:55:30
【问题描述】:

我正在写一个猜词游戏,计算机从 txt 文件中随机选择一个 5 个字母的单词。每轮玩家猜一个 5 个字母的单词,如果猜测不正确,计算机会说出猜测与“秘密”单词共有多少个字母。

如何检查单词是否在“字典”(允许单词的 txt 文件)中?

 // is word in the dictionary?
 public boolean isValidWord(String word) { 
     //see if string inputted is in the dictionary 

}

【问题讨论】:

  • 今后,请用您的问题尽最大努力解决这个问题。
  • 是的,完全可以理解,我还是 java 新手,并且一直在看一个空白屏幕,并决定是时候发布一个问题了。谢谢!
  • 即使是一次糟糕的尝试也比没有尝试要好——否则我们怎么知道你可能做出了哪些错误的假设?否则我们怎么知道你可能遇到什么逻辑或编译错误?此外,对于家庭作业问题,本网站需要此信息,无论是针对家庭作业还是家庭作业,都是如此。
  • 不是每个人都是像你这样的天才,我知道这是一个基本的问题,但我们都必须从某个地方开始......
  • 完全可以理解。话虽如此,我将标记要删除的问题。谢谢。

标签: java string file-io


【解决方案1】:

有多种方法可以做到这一点: 一种是你可以在字典里读一次,按如下方式保存在内存中,然后查一下这个词有没有

 Scanner scanner=new Scanner("FileNameWithPath");
 List<String> list=new ArrayList<>();
 while(scanner.hasNextLine()){
     list.add(scanner.nextLine()); 
 }

或者类似BufferedReader:

BufferedReader in = new BufferedReader(new FileReader("path/of/text"));
String str;

List<String> list = new ArrayList<String>();
while((str = in.readLine()) != null){
    list.add(str);
}

现在您的方法是简单检查列表中的字符串。

【讨论】:

  • 我已经设置了一个缓冲阅读器,可以将所有单词读入一个 ArrayList,所以我需要扫描仪吗?
  • 不,同样有效。
  • 所以我不会使用扫描仪而是设置我的 BufferedReader?
  • 见上文,添加了使用 BufferedReader 的一般概念
【解决方案2】:

使用java8的新特性!

// read all lines
return !Files.lines(Paths.get(fileName))

    // search matches
    .filter(w -> w.equals(word))

    // any hit?
    .findAny()
    .isEmpty();

【讨论】:

  • 谢谢,但我不能使用 java 8,因为这是家庭作业。
猜你喜欢
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 2014-04-06
  • 1970-01-01
  • 2017-04-13
相关资源
最近更新 更多