java - 如何用逗号分割一些东西,把它放到一个数组中,然后把分割后的数组放回一个字符串,然后按行分割回一个数组?
问题描述
我正在为学校的棒球教练进行蒙特卡洛模拟。我目前正在尝试做的是使用 BufferedReader 在文本文件中读取(这本身就是另一个问题,但我可以解决这个问题),然后通过返回拆分所有行(我已经这样做了) 但从那里,我想从每个应该创建的数组中提取每个数组,我想用逗号分隔每个数组,所以对于棒球队的每个球员,我都会为他们准备一个单独的数组。谢谢!- 帕克
我真的不确定从哪里开始,所以我已经到了我说我已经到达的地方,但被卡住了,所以我真的无法尝试任何事情。
public Main() throws IOException {
String[] playerstats = null;
String playername = null;
FileReader fr = new FileReader("MHS_Baseball_Season_Stats_19_csv.txt");
@SuppressWarnings("resource")
BufferedReader br = new BufferedReader(fr);
int lines = 0;
String[] Playerstats = null;
while (br.readLine() != null) {
lines++;
}
for (int i = 0; i < lines; i++) {
playername = Files.readAllLines(Paths.get("MHS_Baseball_Season_Stats_19_csv.txt")).get(i);
playerstats = playername.split("\\R");
for (int j = 0; j < playerstats.length; j++) {
System.out.println(playerstats[j]);
Playerstats = playerstats[j].split(",");
}
}
System.out.println(Playerstats[148]);
}
解决方案
这实际上相当简单:将行读入列表,然后通过逗号分隔将每一行转换为自己的列表。你的结果应该是一个列表列表(我总是鼓励在数组上使用列表)。
final String filename = "MHS_Baseball_Season_Stats_19_csv.txt";
List<String> lines = Files.readAllLines(Paths.get(fileName));
List<List<String>> playerStats = new ArrayList<>(lines.size());
for (String line : lines) {
String[] lineValues = line.split(",");
playerStats.add(Arrays.asList(lineValues));
}
现在 CSV 文件已转换为字符串列表的列表,例如,要获取第一行的第三列,您可以
String value = playerStats.get(0).get(2); // first row, third column
推荐阅读
- javascript - 使用 jquery 验证输入值
- c# - ideviceinfo.exe 返回 Lockdownd 错误代码 -2
- php - PHP压缩图像并重命名
- javascript - 将 Javascript 字符串转换为另一种日期格式
- android - 如何从android中的视频中获取帧数?
- python - 在 Django 项目中构建模板的最佳实践是什么?
- javascript - 如何在跨度中包装符号
- matlab - Maltab:将 gui 中的轴复制到图形
- apache - JasperServer 被 CORS 策略阻止:没有“Access-Control-Allow-Origin”
- ruby - ruby 变量前面的 + 有没有做任何事情?