簡體   English   中英

使用掃描程序JAVA初始化數組

[英]Array initializing with scanner JAVA

public class Main {
   public static void main(String[] args) {
      args = new String[]{"0 0 1 1"};
   }
}

我想使用Scanner從控制台初始化args 可能嗎?

args包含調用時傳遞給Java程序的命令行參數。

例如,如果我像這樣創建PrintArgs類:

public class PrintArgs {
    public static void main (String[] args) {
        for (String s: args) {// loop through args array
            System.out.println(s); // print out every String
        }
    }
}

我現在可以運行PrintArgs並將Strings傳遞給args ,例如在我編寫的命令行上:

$java PrintArgs First Second Third

因此,它將在控制台上打印出來:

First
Second
Third

因此,您不需要ScannerString[]args數組中讀取。

此外,如果要將文件路徑作為String參數傳遞給args ,然后使用Scanner從中讀取,則可以執行以下操作:

public class ReadFileUsingScanner{
    public static void main (String[] args) {
         try {
              File f = new File(args[0]); // suppose you passed the file path as first String
              Scanner input = new Scanner(f);

              while (input.hasNextLine()) { // loop through every line
                System.out.println(input.nextLine()); // print it out
              }
            input.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
} 

然后你運行ReadFileUsingScanner ,例如:

$java ReadFileUsingScanner someFilePath.txt

當你使用java命令運行程序時, args會被java初始化,例如: java Main.class abc

所以,這不是我們在程序中初始化的東西。 雖然你可以重新初始化main方法中的args ,但你不應該這樣做(a)失去它以前的值,(b)不利於參數的不變性。

您可以創建一個新array並詢問用戶輸入,例如:

String[] array = new String[5];
Scanner scanner = new Scanner(System.in);
System.out.println("Enter "+ array.length + " inputs :" );
for(int i = 0; i < array.length ; i++){
    array[i] = scanner.nextLine();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM