java - 在 Java 中将 1D 字符串数组转换为 2D Char 数组的最佳方法 (Eclipse)

标签 java string multidimensional-array char wordsearch

对于 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 char 数组,但在它显示以下内容的行: Matcher matcher = pattern.matcher(letterGrid[row-1]); 发生错误,它显示: Pattern 类型中的方法 matcher(CharSequence) 不适用于参数。 我尝试更改我的程序并将 letterGrid 转换为 1D 字符串数组,并且它对此工作正常,但不适用于 2D 字符数组。我用随机字母和用户单词填充 letterGrid(水平、垂直或对角线。没有向后)。

我被困在这个问题上,目前正在寻找解决问题的方法,但我想我也可以在这里问,因为这里的人提供了很好的意见和建议。任何帮助将不胜感激!

最佳答案

匹配器唯一可接受的参数是字符串 & 将字符转换为字符串的最快方法是:

char c = 'a';
String s = String.valueOf(c);  

所以,你可以这样做:

String s = String.valueOf(letterGrid[row-1]);
Matcher matcher = pattern.matcher(s);

关于java - 在 Java 中将 1D 字符串数组转换为 2D Char 数组的最佳方法 (Eclipse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54298852/

相关文章:

java - 在 Java 中使用 Twitter API(版本 1.1)发布状态并上传媒体

java - 将列表解码为类型

java - + 运算符和字符串

java - 保留大写/小写字符和空格的正则表达式?

arrays - 使用 C 将一维字符数组复制到二维字符数组

php - 将 array_map 应用于数组的列

java - 我的 Jlists 没有发生滚动

java - 如何防止 Wicket 自动完成 Ajax 组件逃逸?

swift - encodedOffset 弃用

java - 为什么我的二维数组克隆不止一次?