java - 读取多行并将其拆分为单独的字符串
问题描述
我希望你一切都好。目前,我正在为 Java 的一个学校项目而苦苦挣扎。我们必须创建“流媒体/娱乐服务”,让主持人能够“主持节目”,但实际上并未实施。我已经做到了,以便“节目”的主持人可以填写有关节目的所有必要信息并将其写入文件。为了向“观众”展示即将到来的节目,我需要从同一个文件中读取它并将所有行组合为一个字符串。我的数据集目前为
Title
Genre
Entertainment type
Date and time
Length of show
Price of show (if any)
"-"
我在每个“节目”的末尾都做了“-”以便能够对此进行拆分,但我似乎对此没有任何运气。数据集的片段将是:
Show #1
Stream
Review
2020-10-10T10:00
90
0.0
-
Show#2
Stream
Review
2020-10-10T10:00
90
0.0
我想做什么:
public class ShowHandler{
private String[] shows;
public void readShows(){
BufferedReader bufferedReader = new BufferedReader(new FileReader("Shows.txt"));
String line;
while((line = bufferedReader.readLine()) != null){
//split the read lines when the "-" occurs
//add these to each place in an array/list
}
}
}
while 循环中的两条注释是我认为可以解决问题的方法,但不知何故我无法做到这一点。任何聪明和有经验的头脑可以帮助我吗?
此致。
解决方案
出现“-”时拆分读取行
不要拆分行,-
因为每条记录也有一个日期字段,其中包含-
. 您可以使用 的实例List<List<String>>
来存储每条记录,其中每条记录都可以是 的实例List<String>
。
读取每一行并放入 aList<String>
中,一旦 a-
出现,将其复制到实例List<List<String>>
并重置List<String>
以收集下一条记录的行。
演示:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
// Test
readShows().forEach(System.out::println);
}
static List<List<String>> readShows() throws IOException {
List<List<String>> listOfLists = new ArrayList<>();
BufferedReader bufferedReader = new BufferedReader(new FileReader("Shows.txt"));
String line;
List<String> list = new ArrayList<>();
while ((line = bufferedReader.readLine()) != null) {
// Transfer the data from `list` to `listOfLists` and create a new list as soon
// as `-` occurs
if (line.equals("-")) {
listOfLists.add(list);
list = new ArrayList<>();
} else {
list.add(line);
}
}
// Add the last record
listOfLists.add(list);
bufferedReader.close();
return listOfLists;
}
}
输出:
[Show #1, Stream, Review, 2020-10-10T10:00, 90, 0.0]
[Show#2, Stream, Review, 2020-10-10T10:00, 90, 0.0]
推荐阅读
- docker - Ubuntu 14.04 gnutls_handshake 失败
- reactjs - React - 偏好:函数组件与类组件
- database - 连接 MongoDB 和一个 Flutter 移动应用
- python - 从bash脚本将列表作为变量传递给python脚本
- php - Laravel:是否可以将对象存储在数据库字段中?如果是这样,怎么做?
- python - 如何:Python:倒计时直到匹配数字?
- ruby-on-rails - 运行“rake db:setup”时收到弃用警告
- android - 无法设置设备位置
- python - 如何进行编码(阿拉伯语إعراب Parsing)Python?
- android - 如何在 Windows 10 中运行 Android Studio 模拟器?