Board logo

標題: 解決next()與nextLine()無法同時使用的問題 [打印本頁]

作者: 陳弘修    時間: 2020-12-19 10:18     標題: 解決next()與nextLine()無法同時使用的問題

試試看,如果先使用 next() 再使用 nextLine() 會有什麼狀況?



在Scanner類別下,有next()與nextLine()兩種方法,next()是以空白或換行為區格,nextLine()則是以換行為區格讀取整行,當一起使用時,會出現nextLine()無法正常運作的問題。

會這樣子的原因是因為next()是抓取空白或\n換行字元以前的字串,所以next()抓完字串之後\n就被nextLine()抓住了,因此nextLine()只有抓到\n而已,沒有抓到應該抓的字串。

解決方法就是讓nextLine()重複抓取,直到抓到有字串為止。
  1. import java.util.Scanner;
  2. public class Ch44
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1, str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          while((str2=s.nextLine()).equals(""));
  13.          System.out.println(str2);
  14.     }
  15. }
複製代碼
  1. import java.util.Scanner;
  2. public class Ch44
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1,str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          str2=s.nextLine();
  13.          str2=s.nextLine();
  14.          System.out.println(str2);
  15.     }
  16. }
複製代碼

作者: 林羿丞    時間: 2020-12-19 10:59

  1. import java.util.Scanner;
  2. public class Ch666
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1,str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          str2=s.nextLine();
  13.          str2=s.nextLine();
  14.          System.out.println(str2);
  15.     }
  16. }
複製代碼

作者: 朱閎聿    時間: 2020-12-19 11:01

  1. import java.util.Scanner;
  2. public class Ch04
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1,str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          str2=s.nextLine();
  13.          str2=s.nextLine();
  14.          System.out.println(str2);
  15.     }
  16. }
複製代碼

作者: 張淯祺    時間: 2020-12-19 11:01

  1. import java.util.Scanner;
  2. public class C4
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String x,y;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          x=s.next();
  10.          System.out.println(x);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          y=s.nextLine();
  13.          y=s.nextLine();
  14.          System.out.println(y);
  15.     }
  16. }
複製代碼

作者: 王銘鴻    時間: 2020-12-19 11:02

  1. import java.util.Scanner;
  2. public class Ch44
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1,str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          str2=s.nextLine();
  13.          str2=s.nextLine();
  14.          System.out.println(str2);
  15.     }
  16. }
複製代碼

作者: 李穎俊    時間: 2020-12-19 11:03

  1. import java.util.Scanner;
  2. public class h
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1, str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          while((str2=s.nextLine()).equals(""));
  13.          System.out.println(str2);
  14.     }
  15. }
複製代碼
  1. import java.util.Scanner;
  2. public class h
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1,str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          str2=s.nextLine();
  13.          str2=s.nextLine();
  14.          System.out.println(str2);
  15.     }
  16. }
複製代碼

作者: 陳莉榛    時間: 2020-12-19 11:03

  1. import java.util.*;
  2. public class Ch43
  3. {
  4.     public static void main(String args[])
  5.     {
  6.       Scanner s=new Scanner(System.in);
  7.       String str1,str2;
  8.       System.out.print("輸入一串字串(不帶空白):");
  9.       str1=s.next();
  10.       System.out.print(str1);
  11.       System.out.print("請輸入一字串(帶空白): ");
  12.       str2=s.nextLine();
  13.       str2=s.nextLine();
  14.       System.out.println(str2);


  15.     }
  16. }
複製代碼

作者: 黃柏智    時間: 2020-12-19 11:06

  1. import java.util.Scanner;
  2. public class A02
  3. {
  4.     public static void main(String args[])
  5.     {
  6.          Scanner s=new Scanner(System.in);
  7.          String str1, str2;
  8.          System.out.print("請輸入一字串(不帶空白): ");
  9.          str1=s.next();
  10.          System.out.println(str1);
  11.          System.out.print("請輸入一字串(帶空白): ");
  12.          while((str2=s.nextLine()).equals(""));

  13.          System.out.println(str2);
  14.     }
  15. }
複製代碼

作者: 龔品誠    時間: 2020-12-26 09:34

  1. import java.util.Scanner;
  2. public class OwO
  3. {
  4.    public static void main(String args[])
  5.    {
  6.       Scanner s=new Scanner(System.in)
  7.       String str1,str2;
  8.       System.out.println("請輸入一字串(不帶空白)")
  9.       str1=s.next();
  10.       System.out.println("請輸入一字串(帶空白)")
  11.       while((str2=s.nextline()).equals(""));
  12.       SyStem.out.println(str2)
  13.    }
  14. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2