对于Java的单词搜索游戏,我要求用户输入任意数量的单词(如果他们希望停止添加更多单词,他们将输入一个'q'),并且此输入存储在数组列表,然后将其转换为称为words.
的一维数组,然后调用main中的方法开始游戏。这是代码段:
System.out.println("Grid of the game");
for(char[] j : letterGrid) {
System.out.println(j);
}
System.out.println("Search for these words...\n");
for(String j : words) {
System.out.print(j + ", ");
}
System.out.print("Enter the Word: ");
String word = br.readLine();
System.out.print("Enter Row Number: ");
int row = Integer.parseInt(br.readLine());
//matching the word using regex
Pattern pattern = Pattern.compile(word, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(letterGrid[row-1]);
letterGrid是2D字符数组,但在其行上显示:Matcher matcher = pattern.matcher(letterGrid[row-1]);
并显示错误:The method matcher(CharSequence) in the type Pattern is not applicable for the arguments.
我尝试更改程序并将letterGrid转换为1D String数组,它可以正常工作,但不适用于2D char数组。我用随机字母和用户单词(水平,垂直或对角线,不向后)填充letterGrid。
我一直坚持下去,目前正在寻找解决问题的方法,但我想我也可以在这里提出问题,因为这里的人会提供很好的建议。任何帮助将不胜感激!
答案 0 :(得分:1)
匹配器唯一可接受的参数是字符串 和 将char转换为字符串的最快方法是:
char c = 'a';
String s = String.valueOf(c);
所以,您可以这样做:
String s = String.valueOf(letterGrid[row-1]);
Matcher matcher = pattern.matcher(s);