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

Java 使用Scanner()读取CSV

公西俊德
2023-03-14
问题内容

我的csv正在读入System.out,但是我注意到任何带空格的文本都移到下一行(作为返回\ n)

这是我的csv的启动方式:

first,last,email,address 1, address 2
john,smith,blah@blah.com,123 St. Street,
Jane,Smith,blech@blech.com,4455 Roger Cir,apt 2

运行我的应用程序后,任何带有空格(地址1)的单元格都将扔到下一行。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class main {

    public static void main(String[] args) {
        // -define .csv file in app
        String fileNameDefined = "uploadedcsv/employees.csv";
        // -File class needed to turn stringName to actual file
        File file = new File(fileNameDefined);

        try{
            // -read from filePooped with Scanner class
            Scanner inputStream = new Scanner(file);
            // hashNext() loops line-by-line
            while(inputStream.hasNext()){
                //read single line, put in string
                String data = inputStream.next();
                System.out.println(data + "***");

            }
            // after loop, close scanner
            inputStream.close();


        }catch (FileNotFoundException e){

            e.printStackTrace();
        }

    }
}

因此,这是控制台中的结果:

first,last,email,address 
1,address 
2
john,smith,blah@blah.com,123 
St. 
Street,
Jane,Smith,blech@blech.com,4455 
Roger 
Cir,apt 
2

我使用扫描仪的方式有误吗?


问题答案:
scanner.useDelimiter(",");

这应该工作。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class TestScanner {

    public static void main(String[] args) throws FileNotFoundException {
        Scanner scanner = new Scanner(new File("/Users/pankaj/abc.csv"));
        scanner.useDelimiter(",");
        while(scanner.hasNext()){
            System.out.print(scanner.next()+"|");
        }
        scanner.close();
    }

}

对于CSV文件:

a,b,c d,e
1,2,3 4,5
X,Y,Z A,B

输出为:

a|b|c d|e
1|2|3 4|5
X|Y|Z A|B|


 类似资料:
  • 问题内容: 我正在研究一个Java程序,该程序逐行读取文本文件,每个文本文件都有一个数字,将每个数字都将其扔到数组中,然后尝试使用插入排序对数组进行排序。我需要有关程序读取文本文件的帮助。 我收到以下错误消息: 我的“ src”,“ bin”和主项目文件夹中有.txt文件的副本,但仍找不到该文件。我正在使用Eclipse。 问题答案: 你必须把文件扩展名放在这里

  • 问题内容: 我得到以下代码: 当我运行此代码时,扫描仪将仅选择名字而不是姓氏。并且有时在尝试输入名称时会跳过一行,它会显示出来,好像我将名称留空并跳到下一个名称一样。我不知道是什么原因造成的。 我希望有一个人可以帮助我! 编辑:我试过in.nextLine(); 它修复了全名,但仍然保留一行,这是输出示例: 问题答案: 代替: 用: 读取字符,直到找到换行符

  • 问题内容: 在那里,我正在制作此应用来更改字幕文件。当我测试它时,我遇到一个奇怪的问题,当我在非英语(例如,波斯语)上对其进行测试时,该程序将无法读取该文件。这是我在程序中阅读字幕的方式: 其中address是.srt文件的字符串保留位置。 我应该怎么做才能使程序读取文件? 问题答案: 创建时选择其他编码。 遵循此思路的某些方法可能会起作用: 这将更改扫描程序以使用UTF-16编码读取文件。

  • 问题内容: 我正在尝试为我的程序创建一个简单的菜单来读取用户输入。这是代码: 这是我得到的例外测试: 我从while循环中删除了第二个命令= Scanner.next(),但是让我仅读取一次用户输入。怎么解决呢? 更新:AddWord方法: 问题答案: 您可以使用

  • 问题内容: 如何使用该类从控制台读取输入?像这样: 基本上,我只需要让扫描程序读取用户名的输入,然后将输入分配给变量。 问题答案: 一个简单的例子来说明如何从中读取单个整数。这真的很简单。 要检索用户名,我可能会使用。 如果你想对输入进行更多控制,或者仅验证变量,也可以使用。 你可以在API文档中找到有关其实现的更多信息

  • 如何使用类从控制台读取输入?类似这样的事情: 基本上,我想要的只是让扫描器读取用户名的输入,并将输入赋给变量。