2011-12-29 108 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

相关问题