【发布时间】:2010-09-13 02:09:43
【问题描述】:
输入文件示例:
ARTIST="unknown"
TITLE="Rockabye Baby"
LYRICS="Rockabye baby in the treetops
When the wind blows your cradle will rock
When the bow breaks your cradle will fall
Down will come baby cradle and all
"
必须将艺术家、标题和歌词字段提取到各自的字符串中,并且大写和格式保持不变。艺术家字段的此代码
while (readIn.hasNext()) {
readToken= readIn.next();
if (readToken.contains("ARTIST")) {
artist= readIn.next();
}
if (readToken.contains("TITLE")){
title= readIn.next();
System.out.print(artist+" "+title);
}
最终打印出来:
"unknown"
TITLE null"unknown"
TITLE null"unknown"
TITLE
从代码中,我看不出为什么输出会这样打印。每次循环时,readToken 字符串都会被刷新,然后应该通过 contains() 方法进行比较。显然我在这里遗漏了一些东西。
那么,我是接近正确的轨道还是我在一个完全不同的城市?
【问题讨论】:
-
令牌的分隔符是什么?
-
您的代码无法编译。您是否在代码中粘贴?还是您只是尝试在 SO 上键入一些代码?
-
readIn 是什么类型的对象?此外,您在 readToken.contains)"TITLE") 中有一个不正确的 close paren 而不是 open paren。
-
该代码看起来无法编译。
-
该代码是来自 try-catch 块内部的 sn-p。 readIn 是一个扫描器对象。我想使用双引号作为分隔符,但不知道如何使用它们。所以我使用了等号。
标签: java file-io text-parsing