如何以相反的顺序打印字符串数据?

时间:2011-12-29 04:45:40

标签: java

我正在尝试以转发顺序打印字符串,因为我在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 ???中的异常

希望你回复

最好的问候

1 个答案:

答案 0 :(得分:0)

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