一个公司的面试题,呵呵,无聊拿来做下....
编写一个JAVA程序,遍历日志文件(server.log),将包含有字符(”ERROR”)的行打印出来。
package com.cherish;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.filechooser.FileSystemView;
public class Demo2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String path = "C:\\Users\\Administrator\\Desktop\\syslog.log";
File file = new File(path) ;
List<String> list = new ArrayList<String>();
try {
FileInputStream is = new FileInputStream(path) ;
InputStreamReader ise = new InputStreamReader(is) ;
BufferedReader br = new BufferedReader(ise) ;
String line ="" ;
try {
while((line = br.readLine())!= null){
if(line.equals(""))
continue ;
else
list.add(line);
if((line.indexOf("error"))!=-1){
System.out.println(line);
}
}
System.out.println(list);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
syslog.log:
result:
2 有以下数据
100,5, 3,98,28,33,44,11,890,233,65,11
编写一个程序,计算出每个数字出现的次数,并打印出来。
package com.sunset.action;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Count {
public static void main(String args[]){
int i[] ={100,5,5,11,3,98,100,28,33,44,11,8,44,90,33,65,11} ;
Map map = new HashMap();
for (int x = 0;x<=i.length-1;x++){
int temp = 0 ;
map.put(i[x], temp) ;
System.out.print(" " +i[x]) ;
}
System.out.println();
for(int x=0;x<=i.length-1;x++ ){
int sum =Integer.parseInt(map.get(i[x]).toString()) ;
if(map.containsKey(i[x])){
sum++ ;
}
map.put(i[x], sum) ;
}
System.out.println(map) ;
}
}