这是我的代码:在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);
答案 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
异常。