2015-10-02 2 views
-5

Я кодирую программу, которая копирует содержимое всех файлов в последний входной файл (все файлы задаются пользователем в командной строке). Итак, как я могу объявить массив, который принимает размер от пользователя?Объявить размер массива в Runtime

+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

Сканер сканирует = новый сканер (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

Это doens't ответить на вопрос, в каком-либо аспекте. –

+0

@ sᴜʀᴇsʜᴀᴛᴛᴀ Вопрос очень неоднозначный. Я думаю, что это хороший ответ, но ченчук интерпретировал вопрос иначе, чем вы. Я думаю, что было ошибкой наказать ответчика за ответ на плохо сформулированный вопрос. –

+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(); 
    } 
} 
Смежные вопросы