Latest web development tutorials

classe Java Scanner

java.util.Scanner java5 nuove caratteristiche, siamo in grado di ottenere l'input dell'utente attraverso classe Scanner.

Ecco la sintassi di base per creare un oggetto Scanner:

 Scanner s = new Scanner(System.in); 

Successivamente, dimostriamo un semplice inserimento dei dati e la stringa di input disponibile attraverso classe Scanner next () e il metodo nextLine (), prima di leggere in genere bisogno di usare i dati per determinare se vi hasNext e haxNextLine iscritti:

Utilizzare metodo successivo:

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);  
        }  

    }  
} 

L'output del programma di cui sopra è:

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

Com è possibile vedere la stringa di output No, diamo un'occhiata a nextLine.

Utilizzare metodi nextLine:

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);  
        }  

    }  
} 

L'output del programma di cui sopra è:

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

Com è possibile vedere la stringa di output.

next () e nextLine () differenza

next ():

  • 1, assicuratevi di leggere la fine prima di poter inserire un carattere valido.
  • 2, prima di entrare in un carattere vuoto valida incontrato, metodo next () verranno rimossi automaticamente.
  • 3 inserisci valida solo dopo un carattere vuoto dietro l'ingresso come delimitatore o terminatore.
  • next () non può ottenere la stringa con spazi.

nextLine ():

  • 1, Invio per terminare il carattere, vale a dire il metodo nextLine () restituisce tutti i caratteri prima di un ritorno a capo.
  • 2 possono essere ottenuti vuoto.

Se si vuole entrare int o il tipo di dati nella classe di scanner galleggiante è anche supportato, ma è meglio usare il metodo hasNextXxx () per verificare prima di entrare, quindi utilizzare nextXxx () per leggere:

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("输入的不是小数!") ;  
        }  
    }  
} 

L'output del programma di cui sopra è:

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

Gli esempi che seguono, siamo in grado di immettere più numeri, e per la sua totale e media, ogni immettere un numero con, quindi premere Invio per terminare inserendo ingressi non numerici ed emette i risultati di:

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));  
    }  
}  

L'output del programma di cui sopra è:

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