嗨,我本质上是在尝试将一个数组的元素复制到另一个数组中。我有数组lineOfData,它保存来自csv文件(id,size,自定义标签)的数据,我想要一个只保存id的新数组id。我试过ids = lineOfData [0];但无济于事。这样做的最佳方式是什么?
Code:
public class Merge {
String filePath;
public Merge() {
}
public static void main(String[] args) throws FileNotFoundException {
Frame myFrame = new Frame();
FileDialog fileBox = new FileDialog(myFrame, "Open", FileDialog.LOAD);
fileBox.setVisible(true);
String filename = fileBox.getFile();
String directoryPath = fileBox.getDirectory();
if ( filename !=null )
{
String filePath = directoryPath + filename;
//testFile(filePath);
mergeFile(filePath);
}
}
public static void mergeFile(String... filePaths) throws FileNotFoundException {
String[] lineOfData = null;
String[] ids = null;
for(String filePath : filePaths)
{
String path = filePath;
Scanner scanner = new Scanner(new File(path));
String columnTitle = scanner.nextLine();
while(scanner.hasNextLine())
{
//scanner.useDelimiter(",");
String line = scanner.nextLine();
lineOfData = line.split(",");
ids[0] = lineOfData[0];
System.out.println(Arrays.toString(ids));
}
scanner.close();
}
}
答案 0 :(得分:0)
您提到您正在获取“价值ID在此位置只能为空”。这是因为您尚未初始化ids数组。现在,ids没有指向任何数组。为了解决这个问题,你
String line = scanner.nextLine();
lineOfData = line.split(",");
ids = new String[lineOfData.length];
ids[0] = lineOfData[0];
如果您要将lineOfData
的所有值添加到ids
,或
String line = scanner.nextLine();
lineOfData = line.split(",");
ids = new String[1];
ids[0] = lineOfData[0];
如果您只想将lineOfData
的一个元素复制到ids
。
另外,请注意lineOfData
也是从未指向任何数组开始的。但是,lineOfData = line.split(",");
行修复了它,并使其指向一个字符串数组。询问您是否有任何问题。