The code below is my attempt to read from a file of strings, read through each line until a ‘:’ is found then store + print everything after that. however The print function prints out everything that I read in from the file. Can someone spot where I’m going wrong? thanks
edit: every line is in this format “Some text here:More text here”
public void openFile() {
try {
scanner = new BufferedReader(new FileReader("calendar.ics"));
} catch (Exception e) {
System.out.println("Could not open file");
}
}
public void readFile() {
ArrayList<String> vals = new ArrayList<String>();
String test;
try {
while ((line = scanner.readLine()) != null)
{
int indexOfComma = line.indexOf("\\:"); // returns firstIndexOf ':'
test = line.substring(indexOfComma+1); // test to be everything after ':'
vals.add(test); // add values to vals
}
} catch(Exception ex){ }
for(int i=0; i<vals.size(); i++){
System.out.println(vals.get(i));
}
}
You don’t need to escape your colon.
Change the above line to: –
Because, that will search for
\\:, and if not found return the value-1.So, if your
indexCommais-1, which will certainly be, if your string does not contain –\\:, then your above line becomes: –As a suggestion, you should have abstract type as the type of reference when declaring your list. So, you should use
Listinstead ofArrayListon the LHS of theListdeclaration: –