中科软面试题
1. java写一个随机生成四位数的程序 每位数字不重复
2. 写一个Servlet 使用JNDI =“jdbc/db2 DataSource” 获得数据库连接 执行SQL 把执行结果输出到文本
文件 out.txt 中 将请求发送到/application/test.jsp
1.
Java code
Random r=new Random();
int[]tag={0,0,0,0,0,0,0,0,0,0};
String four="";
inttemp=0;
while(four.length()!=4){
temp=r.nextInt(10);//取出0-9的数字
if(tag[temp]==0){
four+=temp;
tag[temp]=1;
}
}
System.out.println(four);
2.
public class ActionServlet extends HttpServlet {
public ActionServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
Connection con=null;
FileOutputStream fos = null;
try {
Context ctm=new InitialContext();//初始化
DataSource src=(DataSource)ctm.lookup("java:comp/env/jdbc/db2DataSource");
con=src.getConnection();//获取连接
PreparedStatement ps=con.prepareStatement("select * from A");
ResultSet rs=ps.executeQuery();
fos = new FileOutputStream("d:\\out.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
while(rs.next()){
bw.write(rs.getString(1));
bw.newLine();
bw.write(rs.getString(2));
bw.newLine();
bw.write(rs.getString(3));
bw.newLine();
}
bw.close();
osw.close();
fos.close();
rs.close();
ps.close();
con.close();
} catch (Exception e) {
// TODO: handle exception
}
}
public void init() throws ServletException {
// Put your code here
}
}
仅供参考
1、用String的方法将数据类型转换为String。
2、有一个不定长度的String,其中前面是字母,后边是数字,例如:"abcd123.456",
要求写一个方法得到其中的数字以String的形式返回,数字保留小数点后两位,不四舍五入,截去多余小
数,例如:"abcd123.456",得到"123.45"
如果数字没有小数点,要得到两位为0的小数,例如:"abcd123",得到"123.00".
答案如下:
1、String.valueOf(1.23)
2、 public String getString(String str){
String getNumber;
getNumber = str.replaceAll("[a-z|A-Z]", "");
if(getNumber.indexOf(".") == -1){
getNumber = getNumber+".00";
}else {
if(getNumber.indexOf(".")== getNumber.length()-1){
getNumber= getNumber+"00";
}else if (getNumber.indexOf(".")== getNumber.length()-2){
getNumber = getNumber+"0";
}else {
getNumber = getNumber.substring(0, getNumber.indexOf(".")+3);
}
}
return getNumber;
}