java - 如何使用扫描仪确定行尾?

标签 java java.util.scanner delimiter

我的程序中有一个扫描仪,可以读取部分文件并将它们格式化为 HTML。当我读取我的文件时,我需要知道如何让扫描器知道它在一行的末尾并开始写入下一行。

这是我的代码的相关部分,如果我遗漏了什么请告诉我:

//scanner object to read the input file
Scanner sc = new Scanner(file);

//filewriter object for writing to the output file
FileWriter fWrite = new FileWriter(outFile);

//Reads in the input file 1 word at a time and decides how to
////add it to the output file
while (sc.hasNext() == true)
{
    String tempString = sc.next();
    if (colorMap.containsKey(tempString) == true)
    {
        String word = tempString;
        String color = colorMap.get(word);
        String codeOut = colorize(word, color);
        fWrite.write(codeOut + " ");
    }
    else
    {
        fWrite.write(tempString + " ");
    }
}

//closes the files
reader.close();
fWrite.close();
sc.close();

我发现了 sc.nextLine(),但我仍然不知道如何确定我何时在一行的末尾。

最佳答案

如果您只想使用 Scanner,则需要创建一个临时字符串,将其实例化为数据网格的 nextLine()(因此它只返回它跳过的行)和一个扫描临时字符串的新 Scanner 对象。这样你只使用那条线并且 hasNext() 不会返回误报(这不是真正的误报,因为这就是它的目的,但在你的情况下它在技术上是)。您只需让 nextLine() 保持第一个扫描器并更改临时字符串和第二个扫描器以扫描每个新行等。

关于java - 如何使用扫描仪确定行尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203037/

相关文章:

java - 如何使用 Pelops 客户端让每个节点与 Cassandra 数据库有 40 个连接?

java - Clojure deftype : how to constrain field types?

java - 在子类构造函数中调用父类(super class)方法的问题

java - 带枚举的扫描仪,Java

Java 将字符串与正则表达式进行比较 - while 循环

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

Mysql 5.5.5版本触发分隔符

java - 树状图和并发跳过列表图之间的区别?是否可以将 NavigableMap 与重复键的映射结构一起使用?

Java - 分割一个字符串,可以用竖线分隔 ("\\I")、逗号分隔 (",")、分号分隔 (";") 等

c - 获取一个字符串,并使用连字符分隔符解析/标记为更小的字符串