2011-12-29 72 views
-4

HI我試圖打印字符串中revrse順序,我在jsp頁面中的日誌文件的編碼是什麼樣子,如何以相反順序打印字符串數據?

[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 2011-12-29 04:49:46

+4

男人,該代碼很難閱讀。 – 2011-12-29 04:57:36

+0

不,它只是提供了對JSP錯誤 – 2011-12-29 05:02:09

回答

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

它正在打印,因爲它是在字符串不倒序我也用out.print(ARR [時間-1] + 「
」);但結果是一樣的? – 2011-12-29 05:09:18

+0

是什麼?你仍然有錯誤嗎?你想做什麼,真的嗎?你可以嘗試打印'time'我確定你的數組有'size = 1',因此反向和前進是一樣的。你的分裂實際上不是分裂。 – Nishant 2011-12-29 05:16:02

+0

現在我把這段代碼放在右邊,但是它在這個「Conversion = String.valueOf(inf.stringToLong(ch));線? – 2011-12-29 05:19:18

相關問題