首頁 > 軟體

Java中兩種基本的輸入方式小結

2022-05-18 13:00:46

兩種基本的輸入方式

1.使用Scanner類

需要java.util包

構造Scanner類的物件,附屬於標準輸入流System.in,之後通過其中的方法獲得輸入。

常用的方法:nextLine();(字串),nextInt();(整型數),nextDouble();(雙精度型數)等等。

結束時使用close();方法關閉物件。

例子:

import java.util.*;
 
class IOTest {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("enter your name:");
        String name = sc.nextLine();
        System.out.println("enter your age:");
        int age = sc.nextInt();
        System.out.println("enter your occupation:");
        String occ = sc.next();
        System.out.println("name:" + name + "n" + "age:" + age + "n" + "occupation:" + occ);
        sc.close();
    }
}

輸入:
enter your name:
g28
enter your age:
20
enter your occupation:
student
輸出:
name:g28
age:20
occupation:student

2.使用System.in.read();方法

需要java.io包。

System.in從標註輸入獲取資料,資料型別為InputStream。通過read();方法返回ASCII碼,若返回值為-1,說明沒有讀取到任何字元結束工作。

使用時需要新增丟擲宣告或用try/catch包圍。

例子:

import java.io.*;
class IOTest {
    public static void main(String args[]) {
        int c;
        System.out.println("please enter the string:");
        try {
            while((c = System.in.read()) != -1)
                {
                    System.out.print((char)c); 
                }
        } catch (IOException e) {
            System.out.println(e.toString());
        }
    }
}

輸入:
please enter the string:
My name is g28.
輸出:
My name is g28.

輸入與輸出的使用講解

1.輸入

Java的輸入,我們用到Scanner類,可以用它建立一個物件

Scanner input = new Scanner(System.in);

然後input物件呼叫nextBoolean(),nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble()方法來從輸入流中獲取資料。

package com.company;		// 包
import java.util.Scanner;
public class code {
    public static void main(String[] args){
        // 掃描物件,用來掃描系統的輸入
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();        // 輸入一個整型
        short b = input.nextShort();    // 輸入一個短整型
        long c = input.nextLong();      // 輸入一個長整型
        byte d = input.nextByte();      // 輸入一個位元組型
        float f = input.nextFloat();    // 輸入一個單精度浮點型
        double g = input.nextDouble();  // 輸入一個雙精度浮點型
        // 輸入字串
        // nextLine() 和 next()都可以錄入String型的,但是next()遇到空格就終止了,nextLine()可以把空格和空格後面的全部錄入
        String s = input.nextLine();    // 錄入一行,回車是終止符
        String ss = input.next();       // 遇到空格或回車都會終止·
        // 輸入一個char型別
        // 獲得使用者輸入字串的第一個字元
        char ch = input.next().charAt(0);
    }
}

⭐多組輸入:

import java.util.Scanner; 
public class Mian { 
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);	// cin是自己定義的,這個是任意的
		while (cin.hasNext()) {
			int a = cin.nextInt();
			int b = cin.nextInt();
			System.out.println(a + b);
		}
	}
}

⭐T組輸入:

// 使用while迴圈
import java.util.Scanner; 
public class Mian {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);	// cin是自己定義的,這個是任意的
		int T = cin.nextInt();
		while (T>0) {
			int a = cin.nextInt();
			int b = cin.nextInt();
			System.out.println(a + b);
			T--;
		}
	}
}
// 使用for迴圈
import java.util.Scanner; 
public class Mian {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);	// cin是自己定義的,這個是任意的
		int T = cin.nextInt();
		for(int i=0;i<T;i++)
		 {
			int a = cin.nextInt();
			int b = cin.nextInt();
			System.out.println(a + b);
		}
	}
}

2.輸出

2.1.1 println直接輸出

使用語句System.out.println()輸出,System.out.println()為輸出並換行。

package com.company;
public class code {
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}

2.1.2 println輸出變數

package com.company;
public class code {
    public static void main(String[] args){
        int num = 10;
        System.out.println("num的值為:" + num);
    }
}

輸入num的值並且輸出

package com.company;
import java.util.Scanner;
public class code {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        System.out.println("num的值為:" + num);
    }
}

2.2.1 print

使用語句System.out.print()輸出,System.out.print()為輸出但是不會換行,如果想要換行需要n。print()與println()的作用類似,都是輸出,但唯一不同的是print()不會換行。

2.2.2 printf

jdk1.5新增了和C語言中printf函數類似的資料輸出方法,

System.out.printf(「格式控制部分」,表示式1,表示式2,……,表示式n);


這裡的用法與C語言和C++中的類似

package com.company;
import java.util.Scanner;
public class code {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        System.out.printf("num的值為:%dn" , num);
    }
}

3.輸入輸出範例

package com.company;
import java.util.Scanner;
public class code {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        // 輸入圓的半徑
        double radius = input.nextDouble();
        // 計算圓的面積
        double area = 3.14 * radius * radius;
        // 輸出圓的面積,保留兩位小數
        System.out.printf("%.2fn",area);   // 注意:在Java中double型別用%f輸出(與C語言中的不同)
    }
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com