Java 字符串和字符串[]之间的差异

Java 字符串和字符串[]之间的差异,java,android,string,Java,Android,String,我正在尝试将字符串添加到Android中的csv文件中。根据语法,它要求添加字符串[],但我在下面的行中添加了 String [] s1; s1=c2.getString(c2.getColumnIndex("Sname")); 从cursort中检索值并将其存储在s1中。上面一行给出了错误: Type mismatch: cannot convert from String to String[] 字符串和字符串[]之间有什么区别,如何转换为字符串[] 我是Android和Java

我正在尝试将字符串添加到Android中的csv文件中。根据语法,它要求添加字符串[],但我在下面的行中添加了

String [] s1;    
s1=c2.getString(c2.getColumnIndex("Sname"));
从cursort中检索值并将其存储在s1中。上面一行给出了错误:

Type mismatch: cannot convert from String to 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)

String是单个字符串对象String[]是字符串对象的数组。问题是您试图在不指定索引的情况下将字符串对象添加到字符串数组中

你可以这样做:

String [] s1 = new String[1];    
s1[0]=c2.getString(c2.getColumnIndex("Sname"));
仅举一个示例,或者您可以创建一个字符串对象而不是字符串数组:

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文件中添加一行。如果需要多行,则需要创建多个字符串[],并将每个字符串[]添加到ArrayList csvExport

将字符串[]数组视为列,例如:

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文件:

身份证名称


1 George

您试图将字符串分配给字符串对象数组,但该操作无效。可以这样声明字符串:

String str = c1.getString(c2.getColumnIndex("Sname"));
或者,您可以像这样将字符串分配给字符串对象数组中的索引,这将起作用,但我不认为有理由在这里使用数组

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

谢谢你的回复。。。但是,当我选中选项“没有要添加的方法”时,如何将数据存储在字符串数组中。。现在我可以存储在字符串[]中,但还有一个问题。。。更新了我的问题。。。你能帮忙吗?@Siva我添加了一些解释看看新代码,看看你是否理解CSVWriter是如何工作的。