java - 连接列表到Java中的数组末尾
问题描述
我有这个代码:
public class Test3 {
public static void main(String[] args) throws IOException {
List<String> answers = new ArrayList<>();
answers.add("Yes");
answers.add("No");
try (BufferedReader br = new BufferedReader(new FileReader("D://new.csv"))) {
String line;
while ((line = br.readLine()) != null) {
for (int i = 0; i < answers.size(); i++) {
String[] sae = line.split(",");
sae = Arrays.copyOf(sae, sae.length + 1);
sae[sae.length - 1] = answers.get(i);
System.out.println(Arrays.toString(sae));
}
}
}
}
输出 是:
["something", "hello", Yes]
["something", "hello", No]
["abc", "bye", Yes]
["abc", "bye", No]
我正在读取一个 csv 文件并将其拆分。我正在连接一个list<string>
直通 for 循环,但最后我得到了list<string>
两次。我怎样才能防止它这样做?
我想要的输出是:
["something", "hello", Yes]
["abc", "bye", No]
解决方案
您可以创建一个计数器并在每次读取一行时递增它,并且:
如果您的 csv 中的行与答案中的行匹配:
sae[sae.length - 1] = answers.get(counter);
否则你可能想从头开始:
sae[sae.length - 1] = answers.get(counter % answers.size());
删除你的for循环,你不需要它
推荐阅读
- python - 使用 Python 3.6.8 解析深度(多个)嵌套的 JSON 块
- python - 损失函数神经网络二元分类平均标签
- homebrew - Htop 立即关闭 Apple Silicon (MacBook Air M1)
- shell - shell 处理和比较数组元素
- python-3.x - 如何在不实际写入队列的情况下测试写入队列
- google-analytics - 如何为支付推荐网站设置谷歌分析/谷歌标签管理器
- python - 尽管没有更改,JSON Web 令牌不再具有“解码”属性
- python - 如何在 Pyspark Dataframe 的特定索引中添加行或替换?
- javascript - 身份服务器:在 Angular 中登录和注销后重定向?
- database - Terraform for Digital Ocean 托管数据库防火墙