如何在java中没有方括号的邮件正文中打印所有列表值

时间:2016-06-24 13:30:22

标签: java

这是我的代码:在sendmail()方法中,我无法获得没有方括号的所有文件名。请帮我解决这个问题。在这里,finalvalue是一个arraylist。如果我使用,.get()会得到OutofBoundException。

SimpleDateFormat sdf1 = new SimpleDateFormat("dd MMM yyyy z");
String LastModifiedDate=sdf1.format(file1.lastModified());
DateFormat formatter = new SimpleDateFormat("dd MMM yyyy z");
formatter.setTimeZone(TimeZone.getTimeZone("CET"));
  if(sdf1.format(file1.lastModified()).compareTo(formatter.format(date))==0){
    strFilenameModifieddate=FilesInsideFolder+":"+LastModifiedDate;
    System.out.println(strFilenameModifieddate);
    list.add(strFilenameModifieddate);
    System.out.println("Final:"+list);
    totalElements = list.size();
    System.out.println("total elements:"+totalElements);
    for(index=0; index <totalElements; index++)
    {
    //System.out.println(index);
    System.out.println("Currently modified Files1:"+list.get(index));
    finalvalue.add(path2.get(index));
    }
    message.setText(config_APPLBODY+"\n"+finalvalue+"\n\n"+ config_APPLSIG);

1 个答案:

答案 0 :(得分:0)

  

这是我的代码:在sendmail()方法中,我无法获得没有方括号的所有文件名。

要打印没有ArrayList[字符的],您可以使用类似于以下内容的内容:

ArrayList<String> values = new ArrayList<String>();
values.add("Some value");
values.add("This values has [brackets] in it!");
values.add("Last value");

String commaDelim = values.toString();
commaDelim = commaDelim.substring(1, commaDelim.length()-1);
System.out.println(commaDelim);

输出 Some value, This values has [brackets] in it!, Last value

或者您可以使用for循环:

String commaDelim = "";
for(int i =0; i < values.size(); i++) {
    commaDelim += values.get(i);
    if(i != values.size()-1)
        commaDelim += ", ";
}

System.out.println(commaDelim);

输出 Some value, This values has [brackets] in it!, Last value

如评论中所述,我忘记了String.join(String delim, Iteratable list)。这种方法在编程语言中略有不同(即在PHP中称为implode()),下面的行严格地说是Java特定的,但是,上述两种方法几乎适用于任何语言。这是一种实现相同结果的非常简单的方法:

commaDelim = String.join(", ", values);
System.out.println(commaDelim); 

输出 Some value, This values has [brackets] in it!, Last value

  

这里,finalvalue是一个arraylist。如果我使用,.get()会得到OutofBoundException。

我们需要更多信息来确定此问题的原因(我假设您正在讨论finalvalue.add(path2.get(index));,因为这是唯一的.get()电话)

迭代数组时的一个好习惯是使用数组的大小作为绑定而不是变量,这样就不应该得到ArrayIndexOutOfBounds异常。