You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java读取CSV文件时为每个条目创建字符串的实现方案咨询

嘿,我看你现在需要把CSV里的每个条目都转成单独的字符串对吧?刚好可以基于你现有的代码调整实现,我给你整理一下方案~

调整后的代码:收集每个CSV条目为独立字符串
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public void scanFile() { 
    // 用List存所有CSV条目对应的字符串,后续想用随时取
    List<String> csvEntries = new ArrayList<>();
    String currentEntry; 
    try { 
        Scanner sc = new Scanner(Gui.selectedFile); 
        // 调整分隔符:匹配分号/双引号,同时跳过分隔符后的空白字符
        sc.useDelimiter("[;\"]\\s*"); 
        while (sc.hasNext()) { 
            currentEntry = sc.next(); 
            // 跳过空的无效条目(比如连续分隔符产生的)
            if (!currentEntry.trim().isEmpty()) {
                csvEntries.add(currentEntry);
                // 保留你原来找{9}的逻辑
                if(currentEntry.equals("{9}")) { 
                    System.out.println("找到目标条目啦: {9}"); 
                }
            }
            // 如果你还是需要判断是否遇到数字,可以保留这段逻辑
            if (sc.hasNextInt()) { 
                String numberEntry = String.valueOf(sc.nextInt());
                csvEntries.add(numberEntry);
                System.out.println("遇到数字条目: " + numberEntry);
            }
        } 
        sc.close(); 

        // 可以在这里验证收集到的所有条目
        System.out.println("\n所有收集到的CSV条目:");
        for (String entry : csvEntries) {
            System.out.println("- " + entry);
        }
    } catch (Exception e) { 
        System.out.println("读取文件出错啦: " + e.getMessage()); 
        e.printStackTrace(); // 打印异常栈,方便调试
    }
}

几个关键调整说明:

  • 新增集合存储:用ArrayList<String>来保存每个扫描到的条目,这样你之后要遍历、处理这些字符串都很方便;
  • 优化分隔符:在原有的[;\"]基础上加上\\s*,用来跳过分隔符后面的空格,避免收集到一堆没用的空字符串;
  • 过滤无效条目:通过!currentEntry.trim().isEmpty()过滤掉因连续分隔符产生的空内容;
  • 完善异常处理:把原来的简单"error"改成带具体信息的输出,还加了异常栈打印,调试的时候能更快找到问题;
  • 兼容数字条目:如果遇到数字,把它转成字符串后也加入集合,保证所有条目都是字符串类型。

要是你的CSV格式比较复杂(比如有些字段用双引号包裹,里面还包含分隔符),那建议用专门的CSV解析库(比如Apache Commons CSV或者OpenCSV),这些库能处理各种边缘情况;但如果是简单的CSV场景,上面的代码完全够用啦~

内容的提问来源于stack exchange,提问作者user7261540

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:04:01