I keep getting the error: java.lang.ArrayIndexOutOfBoundsException: 1 within my code. This is my first semester learning java so any help would be greatly appreciated. Also, to kill two birds with one stone. I'm having problems with one of my if statements.
If entry after the comma is not an integer:
Output: "Error: Comma not followed by an integer."
Thanks in advance.
import java.util.Scanner;
import java.util.ArrayList;
import java.io.PrintWriter;
import java.io.StringWriter;
public class DataVisualizer {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Scanner inSS = null;
String title = "";
String column1header = "";
String column2header = "";
String dataString = "";
String dataPoint = "";
String dataInt = "";
boolean inputDone = false;
char comma = ',';
System.out.println("Enter a title for the data: ");
title = input.nextLine();
System.out.println("You entered: " + title);
System.out.println("");
System.out.println("Enter the column 1 header: ");
column1header = input.nextLine();
System.out.println("You entered: " + column1header);
System.out.println("");
System.out.println("Enter the column 2 header: ");
column2header = input.nextLine();
System.out.println("You entered: " + column2header);
System.out.println("");
ArrayList<String> string = new ArrayList<String>();
ArrayList<Integer> integer = new ArrayList<Integer>();
System.out.println("Enter a data point (-1 to stop input): ");
while (!inputDone) {
dataPoint = input.nextLine();
inSS = new Scanner(dataPoint);
if (dataPoint.equals("-1")) {
inputDone = true;
break;
}
if (!dataPoint.contains(",")) {
System.out.println("Error: No comma in string.");
}
// Here is the problem I am running with my if statement.
if (dataPoint.indexOf(",") != dataPoint.lastIndexOf(",")) {
System.out.println("Error: Too many commas in input.");
}
if (Character.isDigit(dataPoint.charAt(-1))) {
System.out.println("Error: Comma not followed by an integer.");
System.out.println("");
System.out.println("Enter a data point (-1 to stop input): ");
}
else {
// This is where Im getting my error
String[] items = dataPoint.split(",");
for (int i = 0; i < items.length; ++i){
dataString = items[0];
dataInt = items[1];
}
Integer dataInteger = Integer.valueOf(dataInt);
System.out.println("Data string: " + dataString);
System.out.println("Data integer: " + dataInteger);
string.add(dataString);
integer.add(dataInteger);
}
System.out.println("");
System.out.println("Enter a data point (-1 to stop input): ");
}
return;
}
}