Latest web development tutorials

Java Klasse Scanner

java.util.Scanner Java5 neuen Funktionen können wir die Eingabe des Benutzers durch Scanner-Klasse erhalten.

Hier ist die grundlegende Syntax, um einen Scanner-Objekt zu erstellen:

 Scanner s = new Scanner(System.in); 

Als nächstes zeigen wir eine einfache Dateneingabe und die Eingabezeichenfolge durch Scanner-Klasse verfügbar next () und nextline () -Methode vor dem Lesen im Allgemeinen die Daten verwenden, müssen wir feststellen, ob es hasNext und haxNextLine eingegeben:

Verwenden nächsten Methode:

import java.util.Scanner; 

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in); 
		// 从键盘接收数据  

		//next方式接收字符串
        System.out.println("next方式接收:");
        // 判断是否还有输入
        if(scan.hasNext()){   
        	String str1 = scan.next();
        	System.out.println("输入的数据为:"+str1);  
        }  

    }  
} 

Das obige Programm Ausgabe lautet:

$ javac ScannerDemo.java
$ java ScannerDemo
next方式接收:
w3big com
输入的数据为:w3big

Com können Sie die Ausgabe string Nein sehen, lassen Sie uns bei nextline suchen.

Verwenden Sie nextline Methoden:

import java.util.Scanner; 

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in); 
		// 从键盘接收数据  

		//nextLine方式接收字符串
        System.out.println("nextLine方式接收:");
        // 判断是否还有输入
        if(scan.hasNextLine()){   
        	String str2 = scan.nextLine();
        	System.out.println("输入的数据为:"+str2);  
        }  

    }  
} 

Das obige Programm Ausgabe lautet:

$ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
w3big com
输入的数据为:w3big com

Com können Sie die Ausgabe-String zu sehen.

next () und nextline () Differenz

next ():

  • 1, müssen Sie das Ende zu lesen, bevor sie ein gültiges Zeichen eingeben.
  • 2, vor wird eine gültige leere Zeichen gefunden, next () -Methode automatisch entfernt eingeben.
  • 3, geben Sie eine gültige erst nach einem Leerzeichen hinter dem Eingang als Trennzeichen oder Terminator.
  • next () die Zeichenfolge mit Leerzeichen nicht bekommen kann.

nextline ():

  • 1 Geben Sie das Zeichen zu beenden, ist, dass nextline () Methode gibt alle Zeichen vor einem Wagenrücklauf zu sagen.
  • 2 kann leer erhalten werden.

Wenn Sie int eingeben möchten oder die Art der Daten in der Klasse Scanner schweben wird ebenfalls unterstützt, aber es ist am besten hasNextXxx () Methode zu verwenden, bevor die Eingabe zu überprüfen, dann nextXxx () verwenden zu lesen:

import java.util.Scanner;  

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in);  
		// 从键盘接收数据  
        int i = 0 ;  
        float f = 0.0f ;  
        System.out.print("输入整数:");  
        if(scan.hasNextInt()){                 
			// 判断输入的是否是整数  
            i = scan.nextInt() ;                
			// 接收整数  
            System.out.println("整数数据:" + i) ;  
        }else{                                 
			// 输入错误的信息  
            System.out.println("输入的不是整数!") ;  
        }  
        System.out.print("输入小数:");  
        if(scan.hasNextFloat()){              
			// 判断输入的是否是小数  
            f = scan.nextFloat() ;             
			// 接收小数  
            System.out.println("小数数据:" + f) ;  
        }else{                                
			// 输入错误的信息  
            System.out.println("输入的不是小数!") ;  
        }  
    }  
} 

Das obige Programm Ausgabe lautet:

$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2

Die folgenden Beispiele können wir mehrere Nummern eingeben, und für die vollständige und Durchschnitt jeder geben Sie eine Nummer mit, drücken Sie die Eingabetaste durch die Eingabe von nicht-numerische Eingaben und gibt die Ergebnisse zu beenden:

import java.util.Scanner; 

class ScannerDemo   
{  
    public static void main(String[] args)   
    {  
        Scanner scan = new Scanner(System.in);  
  
        double sum = 0;  
        int m = 0;  
  
        while(scan.hasNextDouble())  
        {  
            double x = scan.nextDouble();  
            m = m + 1;  
            sum = sum + x;  
        }  
  
        System.out.println(m+"个数的和为"+sum);  
        System.out.println(m+"个数的平均值是"+(sum/m));  
    }  
}  

Das obige Programm Ausgabe lautet:

$ javac ScannerDemo.java
$ java ScannerDemo
12
23
15
21.4
end
4个数的和为71.4
4个数的平均值是17.85