2015-09-02 2 views
0
import java.util.*; 
public class CommaSepratedNumMax 
{ 
public static void main(String args[]) 
{ 
    Scanner san = new Scanner(System.in); 
    ArrayList <Integer> Al = new ArrayList<Integer>(); 
    String line; 
    String[] lineVector; 
    System.out.println("enter the series"); 
    line = san.nextLine(); 
    lineVector = line.split(","); 
    for(int i=0;i<lineVector.length;i++) 
    { 
     try 
     { 
      Al.add(i,Integer.parseInt(lineVector[i])); 
     } 
     catch(NumberFormatException e) 
     { 
      System.out.println(" ERROR: You did not enter a Ineger value"); 
      break; 
     } 
    } 

    int max=Al.get(0); 
    for(int i=0;i<Al.size();i++) 
    { 
     if (Al.get(i)>max) 
      max=Al.get(i); 
    } 
    System.out.println("max no in series is="+max); 
} 

} 

если пользователь не ввести целое значение выше кода даст индекс из связанного исключения и многого другого исключения, как решить эти ошибкиесли пользователь не ввести целое значение в разделенных запятой Series

ответ

0

AL ' s размер равен 0, так как никаких целых чисел не задано. Но вы пытаетесь получить доступ к первому элементу (индекс 0). Это невозможно, поскольку в списке нет элементов.

Проверьте, нет ли в списке какого-либо элемента, прежде чем пытаться извлечь из него что-либо.

if (AL.size() > 0) { 
    int max = Al.get(0); 
} 
+0

выше вещь помогает только тогда, когда кулак значение не целое число, если первое значение является целым числом, а второе значение символа, то это дает неправильный вывод –

3

Если Integer.parseInt(lineVector[i]) бросает исключение, вы не будете добавлять элемент в i «ю позицию в списке. Поэтому на следующей итерации вы получите исключение IndexOutOfBoundsException при попытке добавить элемент в позицию i+1.

Вам не нужно указывать индекс при добавлении в список.

Изменение:

Al.add(i,Integer.parseInt(lineVector[i])); 

в

Al.add(Integer.parseInt(lineVector[i])); 
+0

Также стоит отметить, что вам не нужно зацикливать по индексу и вы можете использовать 'Collections.max' для второй части. –