我正在尝试将字符串添加到android
中的csv文件中根据语法要求添加String []
,但我添加了以下行
String [] s1;
s1=c2.getString(c2.getColumnIndex("Sname"));
从cursot中重新获取值并将其存储在s1
上面一行给我error
Type mismatch: cannot convert from String to String[]
专家请解释一下String and String[]
之间的区别..我如何转换为String[]
我是android和java的新手..如果它是一个基本问题,请道歉。
感谢您的时间
编辑.....................................
我能够存储但无法存储在csv类的writeline
中。
CSVWriter export=new CSVWriter(new FileWriter("/sdcard/"+stock+".csv"));
export.writeAll(s1, true);
错误:
The method writeAll(List<String[]>, boolean) in the type CSVWriter is not applicable for the arguments (String[], boolean)
答案 0 :(得分:5)
String是单个String对象String []是String对象的数组。问题是您正在尝试将String对象添加到String数组而不指定索引。
您可以执行以下操作:
String [] s1 = new String[1];
s1[0]=c2.getString(c2.getColumnIndex("Sname"));
只是一个示例,或者您可以只创建一个String对象而不是String数组:
String s1;
s1=c2.getString(c2.getColumnIndex("Sname"));
基本上,如果要使用数组,则必须指定该数组的索引来存储对象,因为数组中存储了多个对象,每个对象都有自己的索引。
尝试这样做:
ArrayList<String[]> csvExport = new ArrayList<String[]>();
csvExport.add(s1);
CSVWriter export=new CSVWriter(new FileWriter("/sdcard/"+stock+".csv"));
export.writeAll(csvExport, true);
这只会在csv文件中添加一行。如果你想要多行,你需要创建多个String []并将每个String []添加到你的ArrayList csvExport。
将String []数组视为您的列,例如:
String[] columnNames = new String[2];
columnNames[0] = "ID";
columnNames[1] = "Name";
String[] person1 = new String[2];
person1[0] = "1";
person1[1] = "George";
ArrayList<String[]> csvExport = new ArrayList<String[]>();
csvExport.add(columnNames);
csvExport.add(person1);
CSVWriter export=new CSVWriter(new FileWriter("/sdcard/"+stock+".csv"));
export.writeAll(csvExport, true);
上面的代码会给你一个像这样的csv文件:
ID名称
1乔治
答案 1 :(得分:-1)
您正在尝试将String分配给String对象数组,这将无效。您可以像这样声明一个String:
String str = c1.getString(c2.getColumnIndex("Sname"));
或者您可以将String分配给String对象数组中的索引,这样就行了,但是我没有看到在这里使用数组的原因。
String [] strArray = new String[5]; // String array of length 5
strArray[0] = c1.getString(c2.getColumnIndex("Sname")); // set the first element in the array to reference a String object