Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将.csv文件导入java,将其拆分为数组或字符串_Java_String_Arraylist - Fatal编程技术网

将.csv文件导入java,将其拆分为数组或字符串

将.csv文件导入java,将其拆分为数组或字符串,java,string,arraylist,Java,String,Arraylist,正如标题所说,我导入了一个csv文件,其中有3列由逗号(,)分隔。 当我尝试单独打印每一列时,第一列打印时不会出现问题。当我尝试第二列和第三列(索引[1]和[2])时,它们会按预期打印,但在退出之前,我在程序末尾遇到了“ArrayIndexOutOfBoundsException”错误。为什么呢 代码如下: public static void main(String[] args) throws IOException { String path = "C:\\Us

正如标题所说,我导入了一个csv文件,其中有3列由逗号(,)分隔。 当我尝试单独打印每一列时,第一列打印时不会出现问题。当我尝试第二列和第三列(索引[1]和[2])时,它们会按预期打印,但在退出之前,我在程序末尾遇到了“ArrayIndexOutOfBoundsException”错误。为什么呢

代码如下:

public static void main(String[] args) throws IOException {

        String path = "C:\\Users\\UserONE\\Downloads\\inSic1.csv";
        String line = "";

        BufferedReader br = new BufferedReader(new FileReader(path));

        while ((line = br.readLine()) != null){
            String value [] = line.split(",");
            System.out.println(value[1]);

尝试动态打印值,而不是使用硬编码的值。 例如

while((line=br.readLine())!=null)
{
字符串值[]=行分割(“,”);
for(字符串值:值)
{
系统输出打印项次(val);
}
}

这样,您将无法访问不存在的索引,并将问题泛化,即使您使用另一个文件,它也会起作用。

尝试动态打印值,而不是使用硬编码的值。 例如

while((line=br.readLine())!=null)
{
字符串值[]=行分割(“,”);
for(字符串值:值)
{
系统输出打印项次(val);
}
}

通过这种方式,您将不会访问不存在的索引,并将问题泛化,即使您使用其他文件,它也会起作用。

可能csv末尾有一个“空行”?已解决,谢谢。尽管如此,在尝试通过固定索引访问数组之前,您应该通过检查数组大小(或字符串大小)来避免这些问题。或者,您可以
readAllLines(Path Path)
并接收
列表(使用
java.nio
)。然后,您可以在io处理后调查此列表。您可以拆分该列表中的每个项目,并检查其大小,如@maloomeister所述。可能csv结尾处有一个“空行”?已解决,谢谢。尽管如此,在尝试通过固定索引访问数组之前,您应该通过检查数组大小(或字符串大小)来避免这些问题。或者,您可以
readAllLines(Path Path)
并接收
列表(使用
java.nio
)。然后,您可以在io处理后调查此列表。您可以拆分该列表中的每个项目,并检查其大小,如@maloomeister所述。