当前位置: 首页 > 面试题库 >

使用java-在文本字段中用逗号分隔符读取csv文件

赫连秦迟
2023-03-14
问题内容

我有一个逗号分隔的CSV文件,其中包含NASDAQ符号。我使用扫描仪读取文件

  s = new Scanner(new File("C:\\nasdaq_companylist.csv")).useDelimiter("\\s*,\\s*");

我在第二个字段上遇到异常。问题是,该字段与文件中的其他某些字段一样也包含逗号,例如“ 1-800 FLOWERS.COM,Inc.”:

FLWS,"1-800 FLOWERS.COM, Inc.",2.8,76022800,n/a,1999,Consumer Services,Other Specialty Stores,http://www.nasdaq.com/symbol/flws

如何避免这个问题?我的代码是:

List<Stock> theList = new ArrayList<Stock>();
    StringBuilder sb = new StringBuilder();

    //get the title
    String title = s.nextLine();
    System.out.println("title: "+title);

    while (s.hasNext()) 
    {

        String symbol = s.next();
        String name = s.next();
        double lastSale = s.nextDouble();           
        long marketCap = s.nextLong();
        String adr =s.next();
        String ipoYear=s.next();
        String sector=s.next();
        String industry = s.next();
        String summaryQuote = s.next();
        theList.add(newStock(symbol,lastSale));}

谢谢


问题答案:
除非这是家庭作业,否则您不应该自己解析CSV。使用现有库之一。例如: http
//commons.apache.org/sandbox/csv/

或谷歌“ Java的CSV解析器”,然后选择另一个。

但是,如果您希望自己实现逻辑,则应使用正则表达式的负提前查找功能(请参阅http://download.oracle.com/javase/1,5.0/docs/api/java/util/regex/Pattern.html)



 类似资料:
  • 目标:创建一个面向对象的图形Java应用程序,该程序将:读取一个CSV(逗号分隔值)文件,该文件由学生姓名(名字、姓氏)、ID以及内容和交付的初始标记组成(未评估学生使用-1值)。 这是我的代码,但当我点击选择文件。。当它真的应该打开文件并读取数据时,它会显示“预期的名字、姓氏、ID、内容和交付”。但不知何故,它不起作用。在此处输入图像描述 下面是我的代码: 私有类ChooseFileListen

  • 问题内容: 我需要阅读一个CSV文件,其中包含带有逗号的字段,因此我将包含逗号的字段加了双引号,例如: 但是,当我尝试在Python中读取文件时,得到的字段由逗号分隔,如下所示: 我正在读取具有以下代码的CSV文件: 是否可以读取包含逗号的双引号字段? 问题答案: Python模块实际上确实支持带引号的字段,即使默认情况下也是如此。您的问题在于,默认情况下,Python不会跳过空格,因此您需要使用

  • 问题内容: 我正在尝试读取以下形式的大文本文件: 我想在文本文件中将此字符串作为一个大的Java字符串读取。这可能吗?我知道使用split方法。 它可以逐行读取它,但我真正需要的是在“ +”号处分割此长文本字符串。之后,我想将其存储为数组,arraylist,列表,… 谁能帮我这个?因为互联网上的所有信息都只是逐行读取文件。提前致谢! 问题答案: 您可以使用或任何IO类读取文件。假设文件中包含该字

  • 我有一个csv文件,列值中包含逗号。例如 当值在数据中有额外的逗号时,这些值会用双引号括起来。在上面的示例中,值为Column1=123、Column2=45,6和Column3=789,但在尝试读取数据时,由于Column2字段中有额外的逗号,它给了我4个值。 在PySpark中读取此数据时,如何获得正确的值?我正在使用Spark 1.6.3 我目前正在执行以下操作以创建一个rdd,然后从rdd

  • 问题内容: 您可能会或可能不知道的ASCII分隔文本,其中有使用非键盘字符分离领域和线条的不错的优势。 写下来很简单: 而且,可以肯定的是,您可以正确地丢弃东西。但是,在阅读时,什么也没有做,并且如果我尝试这样做: 它抛出 那么,如何读取ASCII分隔文件?我会降级吗? 问题答案: 您可以通过有效地将文件中的行尾字符转换为换行字符进行硬编码来识别: 输出:

  • 问题内容: 我正在尝试使用csv文件读取文件,但某些字段是包含逗号的字符串。字符串用引号引起来,但是numpy不能将引号识别为定义了单个字符串。例如,使用“ t.csv”中的数据: 编码 产生错误: ValueError:检测到一些错误!第2行(获得4列而不是3列) 我正在寻找的数据结构是: 查看文档,我看不到任何解决方案。有没有办法用numpy做到这一点,或者我只需要使用模块读入数据,然后将其转