I have been trying to read a folder that contains any text files like this:
JavaScript
x
K.Love,CLE,miss,2
K.Leonard,TOR,miss,2
K.Love,CLE,make,1
I was doing some tests and for some reason when I use the useDelimeter
to ignore or make the commas disappear, I encounter to a problem. I will show the code first:
JavaScript
import java.io.*;
import java.util.*;
public class test {
public static void main(String[] args) throws FileNotFoundException {
File inputFile = new File("src\main\resources\games\game1.txt");
Scanner reader = new Scanner(inputFile);
reader.useDelimiter(",");
ArrayList<String> names = new ArrayList<>();
while (reader.hasNext()) {
String input = reader.next();
names.add(input);
}
System.out.println(names.get(3));
reader.close();
}
}
What I expect when the console prints the arrayList at position 3 is:
JavaScript
K.Leonard
But instead of that it prints:
JavaScript
2
K.Leonard
When I change the position to number 4 it prints: TOR
(Which is the name of a team).
Advertisement
Answer
You defined your delimiter as ,
, meaning that the newline is no longer the delimiter. To get the behavior you expect, you could use a regex where either a ,
or a newline character are considered as delimiters:
JavaScript
reader.useDelimiter("[,n]");