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

溫馨提示×

溫馨提示×

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

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

在Java中Scanner的用法總結

發布時間:2021-11-01 09:09:40 來源:億速云 閱讀:149 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關在Java中Scanner的用法總結的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Scanner類簡介

Java 5添加了java.util.Scanner類,這是一個用于掃描輸入文本的新的實用程序。

它是以前的StringTokenizer和Matcher類之間的某種結合。由于任何數據都必須通過同一模式的捕獲組檢索或通過使用一個索引來檢索文本的各個部分。

于是可以結合使用正則表達式和從輸入流中檢索特定類型數據項的方法。這樣,除了能使用正則表達式之外,Scanner類還可以任意地對字符串和基本類型(如int和double)的數據進行分析。

借助于Scanner,可以針對任何要處理的文本內容編寫自定義的語法分析器。

關于nextInt()、next()和nextLine()的理解

nextInt(): it only reads the int value, nextInt() places the cursor(光標) in the same line after reading the input.(nextInt()只讀取數值,剩下"\n"還沒有讀取,并將cursor放在本行中)

next(): read the input only till the space. It can't read two words separated by space. Also, next() places the cursor in the same line after reading the input.(next()只讀空格之前的數據,并且cursor指向本行)

next() 方法遇見第一個有效字符(非空格,非換行符)時,開始掃描,當遇見第一個分隔符或結束符(空格或換行符)時,結束掃描,獲取掃描到的內容,即獲得第一個掃描到的不含空格、換行符的單個字符串。

nextLine(): reads input including space between the words (that is, it reads till the end of line \n). Once the input is read, nextLine() positions the cursor in the next line.

nextLine()時,則可以掃描到一行內容并作為一個字符串而被獲取到。

public class NextTest{  
    public static void main(String[] args) {  
        String s1,s2;  
        Scanner sc=new Scanner(System.in);  
        System.out.print("請輸入第一個字符串:");  
        s1=sc.nextLine();  
        System.out.print("請輸入第二個字符串:");  
        s2=sc.next();  
        System.out.println("輸入的字符串是:"+s1+" "+s2);  
    }  
}

結果:

請輸入第一個字符串:home
請輸入第二個字符串:work
輸入的字符串是:home work

把上面的程序修改一下:

s1=sc.next();  
s2=sc.nextLine();

運行結果:

請輸入第一個字符串:home
請輸入第二個字符串:輸入的字符串是:home

可以看到,nextLine()自動讀取了被next()去掉的Enter作為他的結束符,所以沒辦法給s2從鍵盤輸入值。

經過驗證,我發現其他的next的方法,如double nextDouble() , float nextFloat() , int nextInt() 等與nextLine()連用時都存在這個問題,解決的辦法是:在每一個 next()、nextDouble() 、 nextFloat()、nextInt() 等語句之后加一個nextLine()語句,將被next()去掉的Enter結束符過濾掉。

public class NextTest{  
    public static void main(String[] args) {  
        String s1,s2;  
        Scanner sc=new Scanner(System.in);  
        System.out.print("請輸入第一個字符串:");  
        s1=sc.next();  
        sc.nextLine();
        System.out.print("請輸入第二個字符串:");  
        s2=sc.nextLine();  
        System.out.println("輸入的字符串是:"+s1+" "+s2);  
    }  
}

運行結果:

請輸入第一個字符串:home
請輸入第二個字符串:work
輸入的字符串是:home work

循環輸入多組測試用例

一個while就是一個測試用例

public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        // 一個while就是一個測試用例
        while(in.hasNext()){
            int n = in.nextInt(); // 該測試用例后續接收的參數個數
            long[] array = new long[n];
            String[] arrayStr = new String[n];
            for(int i=0; i<n; i++){
                arrayStr[i] = in.next();
            }
            for(int i=0; i<n; i++){
                array[i] = in.nextLong();// 取下一個元素轉換成long類型
            }
            System.out.println(Arrays.toString(array)+" "+ Arrays.toString(arrayStr));
        }
    }

一個與容器結合的綜合例子:

import java.util.Scanner;    
public class Main {    
    public static void main(String[] args) {    
        Scanner in = new Scanner(System.in);    
        while (in.hasNext()) {    
            int n = in.nextInt();   
        /* nextLine()是掃描器執行當前行,并返回跳過的輸入信息,特別需要注意!!! 
 
            如果沒有該行,則執行第一個in.nextLine()命令時的返回值是int n = in.nextInt()的值*/   
            in.nextLine();  
        HashSet<String> set = new HashSet<String>();  
        for (int i = 0; i < n; i++) {   
        String line =   
  
        in.nextLine();   
        String[] arr = line.split(" ");   
        for (int j = 0; j < arr.length; j++) {   
            set.add(arr[j]);   
        }  
         }  
        System.out.println("sum:" + set.size()); 
    }    
}

輸入:
3
a b c
d e f
a b c
輸出:
6

感謝各位的閱讀!關于“在Java中Scanner的用法總結”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

九江市| 石棉县| 怀仁县| 资讯| 西乌珠穆沁旗| 庆安县| 泰和县| 肥乡县| 芮城县| 达州市| 阳信县| 阿图什市| 阳东县| 迁安市| 湖南省| 奉贤区| 普安县| 青岛市| 蒙山县| 二手房| 潞城市| 玉林市| 双峰县| 汉中市| 吉木萨尔县| 翁牛特旗| 乐平市| 葫芦岛市| 亳州市| 沭阳县| 辽宁省| 方山县| 六枝特区| 乐安县| 沽源县| 遂宁市| 防城港市| 渝中区| 济阳县| 工布江达县| 崇阳县|