No código do Nico, quando ele escreve o seguinte código:
public class TesteScanner {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(new File("contas.csv"));
while(scanner.hasNextLine()){
String linha = scanner.nextLine();
System.out.println(linha);
String[] valores = linha.split(", ");
System.out.println(valores[3]);
}
scanner.close();
}
}
A saída é
CC,22,33,Nico Steppat,210.1
Nico Steppat
CP,11,55,Luan Silva,1300.98
Luan Silva
CC,22,44,Ana Garcias,350.40
Ana Garcias
Entretanto, quando eu executo o mesmo código, recebo:
"C:\...\IdeaProjects\java-io\out\production\java-io com.possible.TesteScanner
CC,22,33,Nico Steppat,210.1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 1
at com.possible.TesteScanner.main(TesteScanner.java:20)
Process finished with exit code 1
Se eu imprimo System.out.println(valores);
, sem a posição [3], ele roda normalmente. Não entendo por que, quando coloco a posição > 0 ele dá esse erro..
Aparentemente o código do Nico sabe que o array tem pelo menos até a posição [3]. Como ele sabe isso?