【发布时间】:2018-12-07 22:59:16
【问题描述】:
我有一个这样的txt文件
163 金钱掉落 24
454快乐112
45 没有你,一无所有 56
第一个数字是歌曲的id,我想将它存储为一个整数,第二个是一个字符串!那不是一个词!第三个是一个整数,是歌曲的点赞数。我想将它们存储在一个数组中,但是当我使用扫描仪方法时,我逐字存储它们,当一首歌的名称> 1 个单词时,我遇到了问题。这是我的测试代码
public void readFile() {
while(x.hasNext()){
Song test = new Song(Integer.parseInt(x.next()), x.next(), Integer.parseInt(x.next()));
}
}
有什么方法可以读取 txt 文件,将第一个数字存储为 int,然后扫描整个字符串(歌曲名称)直到下一个元素是数字?
【问题讨论】:
-
当数字是歌曲名称的一部分时会发生什么?
-
在我的情况下没有这样的事情
-
您可以读取 while 行,然后使用正则表达式对其进行解析,但如果您仍然可以更改文本文件的格式,最好使用专用的分隔符,例如 ',' 或';'在您的字段之间(即,将您的文本文件转换为 *.csv,这也便于在 excel 等电子表格程序中打开它)。
-
你为什么不简单地阅读
str中的行,解析为intsubstring(0, firstIndexOf whitespace),解析为intsubstring(lastIndexOf whitespace),然后使用substr(firstIndexOf, lastIndexOf)`作为标题?