2015-10-02 34 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(); 
    } 
}