Java類庫 與使用者互動,java類庫互動

來源:互聯網
上載者:User

Java類庫 與使用者互動,java類庫互動
6.1.1 運行Java程式的參數

Java程式的入口:main()方法的方法簽名:

public static void main(String []args)
  • public:為了讓java類可以由JVM自由調用這個main()方法,所以使用public修飾符把這個方法暴露出來。
  • static:JVM調用這個主方法時,不會先建立該主類的對象,然後通過對象來調用該主方法,JVM直接通過該類來調用主方法
  • void: 因為主方法被JVM調用,該方法的傳回值將返回JVM,這沒有任何意義。
    方法調用的規則:誰調用方法,誰負責為形參賦值。
    ArgsTest.java
package code;public class ArgsTest{    public static void main(String [] args){        System.out.println(args.length);        for(String arg :args){            System.out.println(arg);        }    }}

0
如果改為如下命令來運行上面的程式,

I:\>java code.ArgsTest java String

如果運行Java程式時在類名後緊跟一個或多個字串(以空格分開),JVM就會把這些字串依次賦給args數組元素。

I:\>java code.ArgsTest "java String"
6.1.2 使用Scanner 擷取鍵盤輸入

使用Scanner可以擷取使用者的鍵盤輸入,Scanner是一個基於Regex的文本掃描器,它可以從檔案,輸入資料流,字串中解釋出基本類型值和字串值。

  • hasNextXxx():是否還有下一個輸入項,Xxx可以是Int、Long等代表基礎資料型別 (Elementary Data Type)的字串,如果只是判斷是否包含下一個字串,則直接使用hasNext();
  • nextXxx() :擷取下一個輸入項
    在預設情況下,Scanner使用空白(包括空格、Tab空白、斷行符號)作為多個輸入項之間的分隔字元。
package code;import java.util.*;public class ScannerKeyBoardTest{    public static void main(String []args){        Scanner scanner = new Scanner(System.in);        scanner.useDelimiter("\n");        while(scanner.hasNext())            System.out.println("鍵盤輸入的內容是:" + scanner.next());    }   }

Scanner的讀取操作可能被阻塞來等待資訊的輸入 ,如果輸入源沒有結束,Scanner又讀不到更多的輸入項時,兩個方法都會阻塞
為Scanner設定分隔字元使用useDelimiter(String pattern)方法即可

package code;import java.util.*;public class ScannerLongTest{    public static void main(String [] args){        Scanner scanner = new Scanner(System.in);        while(scanner.hasNextLong())            System.out.println("鍵盤輸入的內容是:" +scanner.nextLong());    }}

上面程式不如ScannerKeyBoardTest程式適應性強,因為ScannerLongTest程式要求鍵盤輸入必須是整數,否則程式將會退出
而且Scanner還能從檔案輸入,

package code;import java.io.*;import java.util.*;public class ScannerFileTest{    public static void main(String []args)throws Exception{        Scanner scanner = new Scanner(new File("ScannerFileTest.java"));        System.out.println("檔案內容如下");        while(scanner.hasNextLine()){            System.out.println(scanner.nextLine());        }    }}

檔案內容如下
package code;
import java.io.*;
import java.util.*;
public class ScannerFileTest{
public static void main(String []args)throws Exception{
Scanner scanner = new Scanner(new File(“ScannerFileTest.java”));
System.out.println(“檔案內容如下”);
while(scanner.hasNextLine()){
System.out.println(scanner.nextLine());
}
}
}

上面程式涉及檔案輸入,可能引發檔案IO異常,所以要聲明throws Exception表明main方法不處理任何異常。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.