3

在我的应用程序中,我遇到了问题..我正在从服务器获取数据到 ArrayList。但我无法将该列表转换为一个字符串数组,其中所有数据项都用双引号引起来。

我获取 arrayList 的代码是

public ArrayList<String> dataarea1(){   

        ArrayList<String>dataarea1=new ArrayList<String>();
        try{
        Statement smt=mycon.connection().createStatement();
        rs=smt.executeQuery("DCRAREADDL "+ paid +",'','','',''");

        while(rs.next())
        {
            dataarea1.add(rs.getString("AREA"));
        }
        }catch(Exception e){
            e.printStackTrace();
        }
        return dataarea1;
    }

现在我想将我的 ArrayList dataarea1 转换为这样的 StringArray ..

String[] colours = { "Red", "Green", "Blue", "Yellow", "Orange", "Purple" };

我想以这种形式转换我的arraylist,但现在它只转换为单引号......如果有人可以告诉我如何将Stringarray中的arraylist转换为双引号中的所有数据项

现在我使用这段代码来获取字符串数组

public String GetName()
     {
         String colour = "";
            for (int i = 0; i < dataarea3.size(); i++) {
                colour += ""+ dataarea3.get(i).toString() +"'"+ ",";

            }
            return colour;
     }   

但是这里所有的项目都放在单引号里........我怎么能把它们放在双引号里

4

6 回答 6

2

这是修改后的函数。您可以使用反斜杠(“\”)来放置引号。

公共字符串 GetName() {

     String colour = "";

        for (int i = 0; i < dataarea3.size(); i++) {
            colour += "\""+ dataarea3.get(i).toString() +"\"" + ",";

        }
        return colour;
 }   
于 2013-08-13T08:52:55.770 回答
1

考虑此代码将转换ArrayList为字符串数组

public void ConvertArrayListToarray()
        {
            ArrayList myArrayList = new ArrayList();
            myArrayList.Add("Jhon");
            myArrayList.Add("Jill");
            myArrayList.Add("Jo");
            myArrayList.Add("Chris");

            String[] myArray = (String[])myArrayList.ToArray(typeof(string));
            string str = string.Empty;
            for (int i = 0; i < myArray.Length; i++)
                           str += myArray[i] + "\n";
         }
于 2013-08-13T07:32:38.417 回答
0

如果您需要在“中添加所有字符串,只需在每个字符串的前面和末尾添加 \”。

static String[] convertToArray(List<String> list){
    String[] output = new String[list.size()];

    StringBuilder builder;
    for(int i=0;i<list.size();i++){
        builder = new StringBuilder();
        builder.append("\"");
        builder.append(list.get(i));
        builder.append("\"");
        output[i] = builder.toString();
    }

    return output;
}
于 2013-08-13T08:48:31.050 回答
0

您可以使用 org.apache.commons.lang.StringUtils.join 或转义双引号

"\""

另外,不要在字符串上使用 +=,使用 StringBuilder/StringBuffer 来连接很多字符串

于 2013-08-13T07:54:13.390 回答
0
ArrayList<String>  dataarea1= new ArrayList<String>();
dataarea1.add("ann");
dataarea1.add("john");
String[] mStringArray = new String[dataarea1.size()];
mStringArray = dataarea1.toArray(mStringArray);

for(int i = 0; i < mStringArray.length ; i++){
    Log.d("string is",(mStringArray[i]);
}
于 2013-08-13T07:33:50.163 回答
0

使用番石榴 Iterables.toArray简单高效。

于 2013-08-13T07:34:07.633 回答