nextline和nextInt連用問題
https://blog.csdn.net/gg543012991/article/details/52900592
在nextInt(),next(),nextDouble(),nextFloat()方法與nextLine()連用並放在nextLine()前面時,就會出現如下錯誤:
System.out.println("請輸入矩陣的行數:");
int rows
System.out.println("請輸入一個矩陣字串,不包含空格:");
String tmp = scanner.nextLine();
System.out.println("請輸入矩陣的列數:");
int cols = scanner.nextInt();
System.out.println("請輸入要查詢的字串:");
String str
scanner.close();
nextLine()並未讀取任何輸入,直接轉到了下一行。
問題分析:
nextLine()會把nextInt(),next(),nextDouble(),nextFloat()的結束換行符作為字串讀入,進而不需要從鍵盤輸入字串nextLine便已經轉向了下一條語句執行。
解決辦法:
在每一個nextInt(),next(),nextDouble(),nextFloat()後都加一個nextLine()語句,將被next()去掉的Enter過濾掉。
程式碼如下:
System.out.println("請輸入矩陣的行數:");
int rows = scanner.nextInt();
scanner.nextLine();
System.out.println("請輸入一個矩陣字串,不包含空格:");
String tmp = scanner.nextLine();
System.out.println("請輸入矩陣的列數:");
int cols = scanner.nextInt();
scanner.nextLine();
System.out.println("請輸入要查詢的字串:");
String str = scanner.nextLine();
scanner.close();
//SolutionMethod2 solution2 = new SolutionMethod2();
System.out.println("矩陣中是否包含該字串:");
執行結果: