2016-06-24 6 views
0

私のコードは次のとおりです。sendmail()メソッドの中で角括弧なしですべてのファイル名を取得できません。これを解決するために私を助けてください。ここで、最終的な値は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

は、ここに私のコードです: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固有のものですが、上記の2つの方法はほぼすべての言語で動作するはずです。これは、同じ結果を達成するために非常に簡単な方法である:ここではSome value, This values has [brackets] in it!, Last value

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

出力は、終値はArrayListのです。私が使用する場合、。get()はOutofBoundExceptionを取得しています。

私たちは、この問題の原因を特定するためより多くの情報が必要になります(つまり、唯一の.get()コールであると私はあなたがについてfinalvalue.add(path2.get(index));を話していると仮定)

良い練習の配列を反復処理するのサイズを使用することです変数ではなく、バインドとしての配列は、を取得しないでくださいArrayIndexOutOfBounds例外を取得します。

+1

このような文字列を作成するためのより簡潔な方法は、 'String.join("、 "values")です。 – VGR

+0

ああ、私は何かが足りないことを知っていた。私の悪い、私は私の答えにそれを追加します – Chris

関連する問題