useDelimeter(",") 不工作
useDelimeter(",") not working
我有一个包含如下数据的文本文件:
Jones,Mary,903452
4342,2.5,A
3311,4,B+
我正在使用扫描仪读取文件。这是我的代码:
while(reader.hasNextLine())
{
reader.useDelimiter(",");
String lastN = reader.next();
String firstN = reader.next();
String id = reader.nextLine();
String course1 = reader.next();
double credits = reader.nextDouble();
String grade = reader.nextLine();
}
但是当我在控制台上打印该行时,该行最后一部分的 ,
没有被分隔并且打印如下:
Jones, Mary, ,903452
4342, 2.5, ,A
6.5, ,3.569
我的 class 上的 toString 方法:
public String toString() {
return lastName + ", " + firstName + ", " + idNo + "\n"
+ courseOne + ", " + credits + ", " + grade;
我四处寻找解决方案。我尝试了 reader.useDelimiter("[,]")
和 reader.useDelimiter(",|,")
但仍然给我相同的输出。我怎样才能解决这个问题?
来自the Scanner
's documentation:
This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
(强调我的)这意味着将返回该行的全部其余部分,包括定界符。将 id
设置为 reader.next()
不会起作用,因为它吸收了 所有内容 直到下一个分隔符。更好的解决方案是让它接受换行符作为分隔符,如下所示:
reader.useDelimiter("[,\n]");
我有一个包含如下数据的文本文件:
Jones,Mary,903452
4342,2.5,A
3311,4,B+
我正在使用扫描仪读取文件。这是我的代码:
while(reader.hasNextLine())
{
reader.useDelimiter(",");
String lastN = reader.next();
String firstN = reader.next();
String id = reader.nextLine();
String course1 = reader.next();
double credits = reader.nextDouble();
String grade = reader.nextLine();
}
但是当我在控制台上打印该行时,该行最后一部分的 ,
没有被分隔并且打印如下:
Jones, Mary, ,903452
4342, 2.5, ,A
6.5, ,3.569
我的 class 上的 toString 方法:
public String toString() {
return lastName + ", " + firstName + ", " + idNo + "\n"
+ courseOne + ", " + credits + ", " + grade;
我四处寻找解决方案。我尝试了 reader.useDelimiter("[,]")
和 reader.useDelimiter(",|,")
但仍然给我相同的输出。我怎样才能解决这个问题?
来自the Scanner
's documentation:
This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
(强调我的)这意味着将返回该行的全部其余部分,包括定界符。将 id
设置为 reader.next()
不会起作用,因为它吸收了 所有内容 直到下一个分隔符。更好的解决方案是让它接受换行符作为分隔符,如下所示:
reader.useDelimiter("[,\n]");