所以我要做的是将两个数组列表合并为一个,并根据合并后的数组/列表编写.csv文件。
比方说,我有两个这样的ArrayList:
public static ArrayList<String> listingNameList;
public static ArrayList<String> listingPriceList;
我正在尝试将listingNameList
和listingPriceList
组合为neededInfo。然后:
String directory = System.getProperty("user.dir");
File file = new File(directory + "/src/sportsCardsTracker/CardPrices.csv");
FileWriter fw = new FileWriter(file, false); //true to not over ride for(String[] s : neededInfo){
fw.write(s[0] + "," + s[1] +'n');
}
目前我不知道如何组合listingNameList
和listingPriceList
。或者,至少我如何将listingNameList
和listingPriceList
写入.csv文件而不必将两者合并?非常感谢任何信息和建议!
编辑:我试过这样的东西,但不起作用。for循环运行50次,因为listingNameList
中有50个项目,listingPriceList
中又有50个。
for(int i = 0; i < 50; i++) {
String[][] neededInfo = new String[2][i];
neededInfo[0][i] = listingName_extract[i];
neededInfo[1][i] = listingPrice_extract[i];
}
System.out.println(neededInfo);
for(String[][] s : neededInfo){
fw.write(s[0] + "," + s[1] +'n');
}
fw.close();
拥有String[][]
怎么样?
- 一对[[name,price]]的列表
private static String[][] parsingString(String listingName_temp, String listingPrice_temp) {
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingPrice_temp.split("\n");
String[][] nameAndPrice = new String[listingName_extract.length][2];
for (int i = 0; i < listingName_extract.length; i++) {
nameAndPrice[i][0] = listingName_extract[i];
nameAndPrice[i][1] = listingPrice_extract[i];
}
return nameAndPrice;
}
示例
parsingString("name1nname2nname3", "1n2n3")
> [[name1, 1], [name2, 2], [name3, 3]]
- 一对列表[[name],[price]]
private static String[][] parsingString(String listingName_temp, String listingPrice_temp) {
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingPrice_temp.split("\n");
String[][] nameAndPrice = new String[2][listingName_extract.length];
for (int i = 0; i < listingName_extract.length; i++) {
nameAndPrice[0][i] = listingName_extract[i];
nameAndPrice[1][i] = listingPrice_extract[i];
}
return nameAndPrice;
}
示例
parsingString("name1nname2nname3", "1n2n3")
> [[name1, name2, name3], [1, 2, 3]]
编辑要写入文件,可以使用"1。配对列表[[name,price]]">和以下步骤
- 打开文件
- 将数据解析为
String[][]
- 迭代数据并将其写入文件
- 关闭文件
private static String[][] parsingString(String listingName_temp, String listingPrice_temp) {
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingPrice_temp.split("\n");
String[][] nameAndPrice = new String[listingName_extract.length][2];
for (int i = 0; i < listingName_extract.length; i++) {
nameAndPrice[i][0] = listingName_extract[i];
nameAndPrice[i][1] = listingPrice_extract[i];
}
return nameAndPrice;
}
public static void main(String[] args) throws IOException {
File file = new File("CardPrices.csv");
FileWriter fw = new FileWriter(file, false); //true to not over ride
String[][] players = parsingString("name1nname2nname3", "1n2n3");
for (String[] s : players) {
fw.write(s[0] + "," + s[1] + 'n');
}
fw.close();
}
进入文件,你会有
name1,1
name2,2
name3,3
我假设您不想创建一个新数组,然后手动添加两个数组的所有值,然后返回,如果是这样的话,为什么不试试这个呢
private static String[] parsingString(String listingName_temp, String listingPrice_temp) {
String[] returnString_1 = null;
String[] returnString_2 = null;
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingName_temp.split("\n");
for(int i = 0; i < listingName_extract.length; i++) {
returnString_1[i] = listingName_extract[i];
returnString_2[i] = listingPrice_extract[i];
}
return Stream.concat(Arrays.stream(returnString_1), Arrays.stream(returnString_2)).toArray();
}
过了一段时间,我决定将两者结合起来不是一个好选择。相反,我这样做:
for (int i = 0; i < listingNameList.size(); i++) {
fw.write(String.format("%s, %sn", listingNameList.get(i), listingPriceList.get(i)));
}