2011-12-29 13 views
-4

HIは、逆の順序で文字列データを印刷するには?私はのように見えているJSPページのログファイルでそれをコード化していますようrevrseために、文字列を印刷しようとしています

[1322110800] LOG ROTATION: DAILY 
[1322110800] LOG VERSION: 2.0 
[1322110800] CURRENT HOST STATE:arsalan.hussain;DOWN;HARD;1;CRITICAL - Host Unreachable (192.168.1.107) 
[1322110800] CURRENT HOST STATE: localhost;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.06 ms 
[1322110800] CURRENT HOST STATE: musewerx-72c7b0;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.27 ms 

コードは、

List<String> data = new LinkedList<String>(); 
    String strpath="/var/nagios.log"; 
FileReader fr = new FileReader(strpath); 
BufferedReader br = new BufferedReader(fr); 
    String ch; 
    int time=0; 
    String Conversion=""; 
    do { 
     ch = br.readLine(); 
Conversion=String.valueOf(inf.stringToLong(ch)); 
     Date d = new Date(Long.valueOf(Conversion)); 
    Pattern pt = Pattern.compile("\\[(\\d+)\\]"); 
    Matcher m = pt.matcher(ch); 
    if (m.find()) { 
    Date dt = new Date(Long.parseLong(m.group(1)) * 1000); 
    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
    ch = m.replaceFirst('['+ sdf.format(dt) +']'); 
    } 
out.print(ch+"<br/>"); 
} while (ch != null); 
    fr.close(); 

は、私はこれを追加することで、それを試してみました私のコードでは、

String[] arr=ch.split("\\["); 
    time=arr.length; 
    for(int num=time;num>=0;num--) 
    { 
    out.print(arr[num]+"<br/>"); 
    } 

は今のコードの上に、このコードを追加した後のように見える

List<String> data = new LinkedList<String>(); 
    String strpath="/var/nagios.log"; 
FileReader fr = new FileReader(strpath); 
BufferedReader br = new BufferedReader(fr); 
    String ch; 
    int time=0; 
    String Conversion=""; 
    do { 
     ch = br.readLine(); 
Conversion=String.valueOf(inf.stringToLong(ch)); 
     Date d = new Date(Long.valueOf(Conversion)); 
    Pattern pt = Pattern.compile("\\[(\\d+)\\]"); 
    Matcher m = pt.matcher(ch); 
    if (m.find()) { 
    Date dt = new Date(Long.parseLong(m.group(1)) * 1000); 
    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
    ch = m.replaceFirst('['+ sdf.format(dt) +']'); 
    } 
    String[] arr=ch.split("\\["); 
    time=arr.length; 
    for(int num=time;num>=0;num--) 
    { 
    out.print(arr[num]+"<br/>"); 
    } 
//out.print(ch+"<br/>"); 
} while (ch != null); 
    fr.close(); 

しかし、結果はJSPでは例外ですか?あなたは

よろしく

+0

を返信するために

希望?推測 "配列の範囲外" – Nishant

+4

男、そのコードは読みにくいです。 –

+0

いいえ、JSPエラー –

答えて

0
何例外
time=arr.length; 
for(int num=time;num>0;num--) 
{ 
    out.print(arr[num-1]+"<br/>"); 
} 
+0

文字列のようにそのままではなく逆順で印刷しています私もout.print(arr [time-1] + "
");結果は同じですか? –

+0

何ですか?それでもエラーが出ますか?本当にやりたいことは?あなたは 'time'を印刷することができます。あなたの配列は' size = 1'を持っていると確信しています。したがって、reverseとforwardは同じです。あなたの分割は実際に分割されていません。 – Nishant

+0

今私は条件の後にこのコードを右側に置いていますが、この "Conversion = String.valueOf(inf.stringToLong(ch));"ライン?? –

関連する問題