I have the following piece of code to read a tab-separated file in Java:
while ((str = in.readLine()) != null) {
if (str.trim().length() == 0) {
continue;
}
String[] values = str.split("\\t");
System.out.println("Printing file content:");
System.out.println("First field" + values[0] + "Next field" + values[1]);
}
But it's printing 1 instead of the file content. What is wrong here?
A line from the sample file reads as follow:
{Amy Grant}{/m/0n8vzn2}{...}
解决方案
Try System.out.println(Arrays.asList(values));
This works! But I need to access the fields separately. Could you plesae tell me what is wring in my code?
I suspect you are getting an IndexOutOfBoundsException. The error you are getting is important and you can't hope to solve the problem if you ignore it.
This would mean you have only one field set.
String[] values = str.split("\\t", -1); // don't truncate empty fields
System.out.println("Printing file content:");
System.out.println("First field" + values[0] +
(values.length > 1 ? ", Next field" + values[1] : " there is no second field"));