无法从数组列表中获取字符串值:仅获取[Ljava.lang.String]@

无法从数组列表中获取字符串值:仅获取[Ljava.lang.String]@,java,android,arraylist,Java,Android,Arraylist,我正在将outlookscv文件解析为ArrayList。 然后我想得到我得到的数组列表的字符串值 代码如下: if(arr != null){ try{ for (int i = 1; i < arr.size(); i++) { oneRow = new ArrayList(); oneRow.add(arr.get(i)); for (int j = 0; j &l

我正在将
outlookscv
文件解析为
ArrayList
。 然后我想得到我得到的
数组
列表的
字符串

代码如下:

 if(arr != null){
        try{
            for (int i = 1; i < arr.size(); i++) {
           oneRow = new ArrayList();
            oneRow.add(arr.get(i));
                for (int j = 0; j < oneRow.size(); j++) {

                StringBuilder strBuild = new StringBuilder();
                    strBuild.append(String.valueOf(oneRow.get(j).toString()));
注意:-此代码是使用JDKv1.8

这是一个工作代码。你可以根据需要进行操作

public List<String> read(){
    ArrayList<String> resultList = new ArrayList(); //A Type-Safety (String) ArrayList
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    try {
        String csvLine;
        while ((csvLine = reader.readLine()) != null) {
            String[] row = csvLine.split(","); //row is String Array Object
            for(String eachWord : row) //Iterate each String from the array
            resultList.add(eachWord);  // add String to the Type-Safe ArrayList.
        }
    }catch (IOException ex) {
    throw new RuntimeException("Error in reading CSV file: "+ex);
}
finally {
    try {
        inputStream.close();
    }
    catch (IOException e) {
        throw new RuntimeException("Error while closing input stream: "+e);
    }
}
return resultList;
   }
  }
公共列表读取(){
ArrayList resultList=新建ArrayList();//类型安全(字符串)ArrayList
BufferedReader reader=新的BufferedReader(新的InputStreamReader(inputStream));
试一试{
弦线;
而((csvLine=reader.readLine())!=null){
String[]row=csvLine.split(“,”;//行是字符串数组对象
for(stringeachword:row)//迭代数组中的每个字符串
resultList.add(eachWord);//将字符串添加到类型安全的ArrayList中。
}
}捕获(IOEX异常){
抛出新的RuntimeException(“读取CSV文件时出错:“+ex”);
}
最后{
试一试{
inputStream.close();
}
捕获(IOE异常){
抛出新的RuntimeException(“关闭输入流时出错:“+e”);
}
}
返回结果列表;
}
}
用这个更新你的另一个代码

if(arr != null){
            for (int i = 1; i < arr.size(); i++) {
           ArrayList<String> oneRow = new ArrayList();
            oneRow.add(arr.get(i));
                for (int j = 0; j < oneRow.size(); j++) {
                    strBuild.append(oneRow.get(j));
                }
    }
    System.out.println(strBuild.toString());
}
if(arr!=null){
对于(int i=1;i
此代码工作正常。您可以自己尝试。如果有任何问题,您可以发表评论


为什么要双重转换为以下字符串:

strBuild.append(String.valueOf(oneRow.get(j.toString()))

我想,这对你很有帮助:

的目的是什么:
String.valueOf(oneRow.get(j.toString())
?没有目的,我只是试图在[j]上获取ArrayList的字符串值位置。你试过简单地转换字符串吗?把代码放在这里,让它知道这是什么类型的对象
arr
?那么只有我们才能为你编写代码。我有话要对所有这些“好”说给出我问题的人都是负面反馈。这很令人伤心,因为我认为stackoverflow的目的是帮助人们,如果一个人马上得到负面反馈,他将如何学习?!与其点击向下箭头,也许你应该尝试帮助。非常感谢那些真正试图帮助我的人。Vikrant Kashyap,T非常感谢你,你是个天才。三天来我一直在努力让它发挥作用。不幸的是,我不能给这个答案一个积极的反馈。
if(arr != null){
            for (int i = 1; i < arr.size(); i++) {
           ArrayList<String> oneRow = new ArrayList();
            oneRow.add(arr.get(i));
                for (int j = 0; j < oneRow.size(); j++) {
                    strBuild.append(oneRow.get(j));
                }
    }
    System.out.println(strBuild.toString());
}