91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java之scan.next()與scan.nextline()函數如何使用

發布時間:2023-04-04 10:40:38 來源:億速云 閱讀:79 作者:iii 欄目:開發技術

這篇文章主要講解了“java之scan.next()與scan.nextline()函數如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java之scan.next()與scan.nextline()函數如何使用”吧!

    scan.next()與scan.nextline()函數的使用及區別

    今天在做牛客網編程練習題“length of last word”時,當編寫實現代碼時,使用split()函數對輸入的字符串進行按空格符分割,確遇到了”奇葩“的問題,每次只能得到第一個字符串。

    開始以為是split()函數用錯了,查了資料確定無誤后,覺得應該是輸入的有問題。

    于是進行了下面的實驗:

    import java.util.Scanner;
    
    public class Solution {
        
    	public static void main(String[] args) {
    		String s_next = "";
    		String s_nextLine = "";
    		int count_next = 0; // 計數
    		int count_nextLine = 0; // 計數
    		Scanner scan = new Scanner(System.in);  
    		System.out.println("請輸入第一個字符串:");	
    		s_nextLine = scan.nextLine(); // 此處使用nextLine(),便于對比
    		System.out.println("請輸入第二個字符串:");	
    		s_next = scan.next(); // 第一次使用的next();
    		
    		scan.close();
    		
    		String [] split_next = s_next.split("\\s+");
    		String [] split_nextLine = s_nextLine.split("\\s+");
    		
    		for(String s : split_next)
    			System.out.println("子串next: "+ count_next++ +": "+ s + " 長度: " + s.length()+ '\n');
    		
    		for(String s : split_nextLine)
    			System.out.println("子串nextLine: "+ count_nextLine++ +": "+ s + " 長度: " + s.length()+ '\n');
    		
    	}
    
    }

    測試結果

    也驗證了我的猜想

    java之scan.next()與scan.nextline()函數如何使用

    注意:

    自省,也希望能對大家有所幫助,少走彎路。

    • 用 Scanner 實現字符串的輸入有兩種方法,一種是next(),一種nextLine();

    • next() 一定要讀取到有效字符后才可以結束輸入,對輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,next() 方法會自動將其去掉,只有在輸入有效字符之后,next()方法才將其后輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結束符。

    • nextLine()方法的結束符只是Enter鍵。

    簡言之,next方法不能得到帶空格的字符串,而nextLine()方法返回的是Enter鍵之前的所有字符,因此出現了上面測試樣例的結果。(ps.一定要注意!)

    Scanner類的next()和nextLine()方法

    java的Scanner類可以用來接收鍵盤輸入的數據。next()和nextLine()方法用來接收字符串,next()方法接收字符串時遇到空格或回車結束輸入,而nextLine()方法可以接收空格,最后輸入回車才結束。下面用實例演示

    兩者的區別:

    next()方法

    package scanner;
    import java.util.Scanner;
    public class Scan {
    
    	public static void main(String[] args) {
    		
    		String a,b;
    		Scanner sc=new Scanner(System.in);
    		System.out.println("next()方法接收字符串:");
    		a=sc.next();
    		System.out.println(a);
    	}
    
    }

    運行結果截圖:

    java之scan.next()與scan.nextline()函數如何使用

    nextLine()方法

    package scanner;
    import java.util.Scanner;
    public class Scan {
    	public static void main(String[] args) {
    		String a,b;
    		Scanner sc=new Scanner(System.in);
    		System.out.println("nextLine()方法接收字符串:");
    		b=sc.nextLine();
    	    System.out.println(b);
    	}
    }

    運行結果截圖:

    java之scan.next()與scan.nextline()函數如何使用

    兩個方法一起用可能會出錯:

    package scanner;
    import java.util.Scanner;
    public class Scan {
    	public static void main(String[] args) {
    		String a,b;
    		Scanner sc=new Scanner(System.in);
    		System.out.println("next()方法接收字符串:");
    		a=sc.next();
    		System.out.println(a);
    		System.out.println("nextLine()方法接收字符串:");
    		b=sc.nextLine();
    	    System.out.println(b);
    	}
    }

    運行結果截圖:

    java之scan.next()與scan.nextline()函數如何使用

    這時程序已結束運行,不能再輸入。原因是next()方法遇到回車結束輸入,卻把最后的回車符留給了nextLine(),nextLine()方法接收了一個空字符串。

    解決方法是next()方法后面再加一個nextLine()用來接收回車符,代碼如下:

    package scanner;
    import java.util.Scanner;
    public class Scan {
    	public static void main(String[] args) {
    		String a,b;
    		Scanner sc=new Scanner(System.in);
    		System.out.println("next()方法接收字符串:");
    		a=sc.next();
    		System.out.println(a);
    		a=sc.nextLine();//接收回車符
    		System.out.println("nextLine()方法接收字符串:");
    		b=sc.nextLine();
    	    System.out.println(b);
    	}
    }

    運行結果截圖:

    java之scan.next()與scan.nextline()函數如何使用

    感謝各位的閱讀,以上就是“java之scan.next()與scan.nextline()函數如何使用”的內容了,經過本文的學習后,相信大家對java之scan.next()與scan.nextline()函數如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    钟山县| 新沂市| 合水县| 青田县| 全南县| 红原县| 东城区| 崇左市| 淅川县| 阿鲁科尔沁旗| 永仁县| 保康县| 黄山市| 江川县| 瑞金市| 红河县| 珲春市| 乌兰县| 安泽县| 辉县市| 梅州市| 嘉黎县| 曲沃县| 石家庄市| 鄂尔多斯市| 岳池县| 襄樊市| 织金县| 疏勒县| 聂拉木县| 林西县| 凤冈县| 丹寨县| 土默特右旗| 孟村| 泾阳县| 和龙市| 海晏县| 建阳市| 固原市| 泰州市|