0

我有一个 CSV 文件,它只有一列有 100 多行。我想把这些值放在一个一维数组中(只有在可能的情况下)。这样它就像我手动编写一个字符串数组一样工作。IE

String[] username = {'lalala', 'tatata', 'mamama'}; //<---if I did it manually

String[] username = {after passing the CSV values}; //<---I want this like the above ones.

然后稍后我希望能够将该类初始化为不同的类,例如,如果保存数组的类称为 ArrayClass,我希望能够将其初始化为不同的类,如下所示——

public class MainClass{
     ArrayClass array = new ArrayClass();
     //Then I would like to be able to do this
     someMethod(array.username);
}

我知道我问了很多事情,但我非常感谢您的所有帮助。即使您看到这个问题并说这是废话。哦,还有一件事我更喜欢它在 JAVA 中。

4

3 回答 3

1

使用数组列表而不是数组可能更容易,因为您不必担心行数。数组具有固定大小,无法更改。即ArrayList

由于您只有一列,因此您无需担心 csv 中的逗号

示例代码如下所示:

import java.util.*;
import java.io.*;

  public class MyClass {

  private ArrayList<String> MyArray = new ArrayList<String>();
  private Scanner scan;

  public MyClass(){

    try {
      scan = new Scanner(new File("MyFile.csv"));
    } catch (IOException ioex) {
      System.out.println("File Not Found");
    }

  }

  public ArrayList<String> getArray() {

    while (scan.hasNext()) {
      Scanner line = new Scanner(scan.nextLine());
      MyArray.add(line.next());

    }
    return MyArray;
  }

  }

主要是:

MyClass f = new MyClass();
System.out.println(f.getArray());
于 2013-10-22T19:58:30.853 回答
0

如果它只是一个 csv,您可以使用 string 的 split 方法和适当的正则表达式。请检查拆分方法

于 2013-10-22T18:54:10.323 回答
0

你问题的前半部分很简单,可以通过多种不同的方式来处理。就个人而言,我会使用 Scanner 类并将分隔符设置为“,”。创建一个新的扫描仪对象,然后调用setDelimiter(",")它。然后简单地扫描令牌。请参阅文档中的示例。这种处理方法是有效的,因为它处理文件中的读取根据您的标准(“,”字符)将其分开。

于 2013-10-22T18:54:33.743 回答