2015-10-02 68 views
-5

我正在編寫一個程序,將所有文件的內容複製到最後一個輸入文件(所有文件都由用戶在命令提示符下給出)。那麼,我該如何聲明一個數組,該數組需要用戶的大小呢?在運行時聲明數組的大小

+0

'字符串文件名[] =新的String [lenghtTakenByUserFromConsoleWhichIsValidInteger];' –

回答

9

那樣做:

import java.util.Scanner; <-------- import the class 

public class InputFromUser { 

    public static void main(String[] args){ 

     Scanner scan = new Scanner(System.in);  
     System.out.println("Enter a number for the array size:"); 
     int size = scan.nextInt();  
     int[] arr = new int[size]; 

    } 

} 

要麼使用java.io這樣的:

BufferedReader columnInput = new BufferedReader(new InputStreamReader (System.in)); 
int size = Integer.parseInt(columnInput.readLine()); 
+0

Scanner scan = new Scanner(System.in);這是什麼意思? – Akshay

+0

這是一個Java類,可以幫助您從用戶System.in中獲取輸入。 請查看以下文檔:http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html – roeygol

+0

對不起,但我無法使用它。有沒有其他方法? – Akshay

0

如果提供的文件列表中運行的應用程序作爲參數時:你可以使用它返回所提供的參數數量args.length屬性:

public static void main(String[] args) { 
     System.out.println(args.length); 
} 
+0

這好好嘗試回答任何方面的問題。 –

+0

@sᴜʀᴇsʜᴀᴛᴛᴀ這個問題非常模糊。我認爲這是一個很好的答案,但chenchuk解釋了這個問題與你的做法不同。我認爲懲罰答辯人回答措辭不佳的問題是錯誤的。 –

+0

爲什麼不呢?命令行提供的文件列表作爲參數,這應該是數組大小...不是它的問題嗎? – chenchuk

0

你也可以做這種方式:

public static void main(String args[]) { 
    BufferedReader input = new BufferedReader (new InputStreamReader(System.in)); 
    try { 
     System.out.println("Enter a array size:"); 
     int arraysize = Integer.parseInt(input.readLine()); 
     int[] arr = new int[arraysize]; 

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