Latest web development tutorials

class Java Scanner

java.util.Scanner Java5 fitur baru, kita bisa mendapatkan input pengguna melalui kelas Scanner.

Berikut adalah sintaks dasar untuk membuat objek Scanner:

 Scanner s = new Scanner(System.in); 

Selanjutnya, kami menunjukkan input data sederhana dan string input yang tersedia melalui kelas Scanner berikutnya () dan metode nextLine (), sebelum membaca kita umumnya perlu menggunakan data untuk menentukan apakah ada hasNext dan haxNextLine masuk:

Gunakan metode selanjutnya:

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

    }  
} 

Output program di atas adalah:

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

Com Anda dapat melihat output string Tidak, mari kita lihat nextLine.

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

    }  
} 

Output program di atas adalah:

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

Com Anda dapat melihat output string.

Perbedaan berikutnya () dan nextLine ()

berikutnya ():

  • 1, pastikan untuk membaca akhir sebelum mereka dapat memasukkan karakter yang valid.
  • 2, sebelum memasuki karakter kosong valid ditemui, () metode selanjutnya akan dihapus secara otomatis.
  • 3, masukkan hanya berlaku setelah karakter kosong di belakang masukan sebagai pembatas atau terminator.
  • berikutnya () tidak bisa mendapatkan string dengan spasi.

nextLine ():

  • 1, Enter untuk mengakhiri karakter, yaitu metode nextLine () mengembalikan semua karakter sebelum carriage return.
  • 2 dapat diperoleh kosong.

Jika Anda ingin memasukkan int atau float jenis data di kelas Scanner juga didukung, tapi yang terbaik adalah menggunakan metode hasNextXxx () untuk memverifikasi sebelum masuk, kemudian gunakan nextXxx () untuk membaca:

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

Output program di atas adalah:

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

Contoh-contoh berikut, kita dapat memasukkan beberapa nomor, dan untuk total dan rata-rata, masing-masing memasukkan nomor dengan, kemudian tekan Enter untuk mengakhiri dengan memasukkan input non-numerik dan output hasil:

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

Output program di atas adalah:

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