```java
package TM_sl_10;
import java.util.Scanner;
public class Test7 {
public static void main(String[] args) {
System.out.println("请输入您要搜索的书名或关键字:");
Scanner scanner = new Scanner(System.in);
String[][] books = {{"《Java》", "《Javaweb》", "《C语言》", "《C++》", "《Linux C》"}, {"《论语》", "《资治通鉴》", "《四十二经章》", "《史记》", "《" +
"隋唐史》"}};
while (true) {
String str = scanner.nextLine();
boolean s = false;
System.out.println("-------------------搜索结果--------------------");
for (int i = 0; i < books.length; i++) {
for (int j = 0; j < books[i].length; j++) {
if (books[i][j].contains(str))
System.out.println(books[i][j] + ":第" + (i + 1) + "个书柜里的第" + (j + 1) + "本书");
s = true;
break;
}
}
if (s == false)
System.out.println("未找到此书");
System.out.println("请输入您要搜索的书名或关键字:");
}
}
}
问题:现在就是我输入信息并不打出查询到了书
```
1)要多打大括号,直接给你代码
public static void main(String[] args) {
t();
}
private static void t(){
System.out.println("请输入您要搜索的书名或关键字:");
Scanner scanner = new Scanner(System.in);
String[][] books = {{"《Java》", "《Javaweb》", "《C语言》", "《C++》", "《Linux C》"}, {"《论语》", "《资治通鉴》", "《四十二经章》", "《史记》", "《" +
"隋唐史》"}};
while (true) {
String str = scanner.nextLine();
if(str.equals("q")) {
System.out.println("成功推出");
break;
}
boolean s = false;
System.out.println("-------------------搜索结果--------------------");
for (int i = 0; i < books.length; i++) {
for (int j = 0; j < books[i].length; j++) {
if (books[i][j].contains(str)) {
System.out.println(books[i][j] + ":第" + (i + 1) + "个书柜里的第" + (j + 1) + "本书");
s = true;
break;
}
}
}
if (!s) {
System.out.println("未找到此书");
}
System.out.println("请输入您要搜索的书名或关键字:");
}
}
2)运行结果
初学建议不少省略大括号,出现问题你不好排查。稍微改了下,你看看运行结果是不是你想要的。
for (int j = 0; j < books[i].length; j++) {
if (books[i][j].contains(str)) {
System.out.println(books[i][j] + ":第" + (i + 1) + "个书柜里的第" + (j + 1) + "本书");
s = true;
break;
}
}
你的意思-----也就是说输入信息,明明有书,但是没查询到?还是别的?麻烦你重新补发一下问题
看你的代码是 二维数组存放数据,然后查询书,并指出书的位置