Day14-第一次测试

总结

我是最棒的!基础不牢,地动山摇!

第一次测试

1、定义一个方法:返回一个int[]中最小的那个数(5分);

package cn.itsource.exam;

import java.util.Arrays;

public class Exam1 {

   /**
    * 	1、定义一个方法:返回一个int[]中最小的那个数(5分);
    * 测试
    */
   public static void main(String[] args) {
   	/*
   	 * 下面测试空数组,会抛出异常并给出提示信息
   	 */
   	//int[] nullArr = null;
   	//System.out.println(getMin(nullArr));
   	
   	//正常测试两种方法
   	int[] arr = {5,3,2,8,9};
   	int min = getMin(arr);
   	System.out.println("min = " + min);
   	
   	int min2 = getMinNew(arr);
   	System.out.println("min = " + min2);
   	
   }
   
   /**
    * 获取最小值的方法
    * @param arr
    * @return
    */
   public static int getMin(int[] arr){
   	if(arr == null || arr.length == 0){
   		throw new IllegalArgumentException("该数组为空,无法判断");
   	}
   	
   	int min = arr[0];
   	for (int i = 1; i < arr.length; i++) {
   		if(arr[i] < min){
   			min = arr[i];
   		}
   	}
   	return min;
   }
   /**
    * 通过排序获取最小值
    * @param arr
    * @return
    */
   public static int getMinNew(int[] arr){
   	if(arr == null || arr.length == 0){
   		throw new IllegalArgumentException("该数组为空,无法判断");
   	}
   	
   	Arrays.sort(arr);
   	return arr[0];
   }

}

2、现在给出两个数组,数组arr1: “1,7,9,11,13,15,17,19,33,51”; 数组arr2:”12,24,6,8,10”,两个数组合并之后数组newArr,在按照升序排列,通过定义方法的方式(10分,合并5分,排序5分)

package cn.itsource.exam;

import java.util.Arrays;

public class Exam2 {

   /**
    * 	2、现在给出两个数组,数组arr1: “1,7,9,11,13,15,17,19,33,51”;   
    * 数组arr2:”12,24,6,8,10”,两个数组合并之后数组newArr,在按照升序排列,
    * 通过定义方法的方式(10分,合并5分,排序5分)
    */
   public static void main(String[] args) {
   	//测试合并数组
   	int[] arr1 = {1,3,5,6,7};
   	int[] arr2 = {5,3,6,9,8};
   	
   	int[] arr = mergeArray(arr1, arr2);
   	System.out.println(Arrays.toString(arr));
   }
   /**
    * 合并数组的方法,使用arraycopy来操作
    * @param arr1
    * @param arr2
    * @return
    */
   public static int[] mergeArray(int[] arr1,int[] arr2){
   	
   	int[] arr = new int[arr1.length + arr2.length];
   	System.arraycopy(arr1, 0, arr, 0, arr1.length);
   	System.arraycopy(arr2, 0, arr, arr1.length, arr2.length);
   	
   	Arrays.sort(arr);
   	
   	return arr;
   }

}

3. 有如下一个工具类StringUtil,其中有这样的一些工具方法static: (15分)

a) 判断一个字符串是否为空字符串;(5分)

b) String和Date之间的相互转换;(5分)

c) 判断一个字符串是否以指定的后缀结尾;(5分)

请完成其功能代码;

并对每一个功能写上测试代码;

给这个类 StringUtilTest以及类中的每个方法加上文档注释

StringUtil类

package cn.itsource.exam;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* 有如下一个工具类StringUtil,其中有这样的一些工具方法static: (15分)
   	a)	判断一个字符串是否为空字符串;(5分)
   	b)	String和Date之间的相互转换;(5分)
   	c)	判断一个字符串是否以指定的后缀结尾;(5分)  
   	请完成其功能代码;
   	并对每一个功能写上测试代码;
   	给这个类 StringUtilTest以及类中的每个方法加上文档注释

*
*/
public class Exam3_StringUtil {
   /**
    * 判断字符串是否为空的方法
    * @param str
    * @return
    */
   public static boolean isNull(String str){
   	return str.isEmpty();
   }
   
   /**
    * 将Date转换为String类型的方法
    * @param date
    * @return
    */
   public static String changeToString(Date date){
   	SimpleDateFormat sdf = new SimpleDateFormat();
   	return sdf.format(date);
   }
   
   /**
    * 将String类型转换为Date类型的方法
    * @param str
    * @return
    * @throws ParseException
    */
   public static Date changeToDate(String str) throws ParseException{
   	SimpleDateFormat sdf = new SimpleDateFormat();
   	return sdf.parse(str);
   }
   
   /**
    * 判断一个字符串是否以指定字符串为后缀的方法
    * @param str
    * @param destStr
    * @return
    */
   public static boolean endWith(String str,String destStr){
   	return str.endsWith(destStr);
   }
   
}

测试类

package cn.itsource.exam;

import java.text.ParseException;
import java.util.Date;

public class Exam3 {

	public static void main(String[] args) {
		//测试字符串是否为空串
		String str = "";
		System.out.println(Exam3_StringUtil.isNull(str));
		
		String str2 = "666";
		System.out.println(Exam3_StringUtil.isNull(str2));
		
		//测试Date转换String
		Date date = new Date();
		String str3 = Exam3_StringUtil.changeToString(date);
		System.out.println(str3);
		
		//测试String转换为Date
		try {
			System.out.println(Exam3_StringUtil.changeToDate(str3));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
		//测试是否以指定字符串为后缀
		String str4 = "abcdef";
		String str5 = "ef";
		String str6 = "ab";
		System.out.println(Exam3_StringUtil.endWith(str4, str5));
		System.out.println(Exam3_StringUtil.endWith(str4, str6));
		
	}

}

4.写2个单例模式,不考虑线程安全问题(10分,一个5分)

饿汉模式

package cn.itsource.exam;
/**
* 饿汉模式
*/
public class Exam4_Singleton {
   
   private static final Exam4_Singleton INSTANCE = new Exam4_Singleton();
   
   private Exam4_Singleton(){
   	
   }
   
   public static Exam4_Singleton getInstance(){
   	return INSTANCE;
   }
}

枚举

public enum Exam4_Enum {
	SINGLETON;
}

5.写一个方法,生成n位验证码,验证码范围(1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM)(20分 1.写一个生成指定范围内随机数的方法(8分)2.写生成验证码的方法(12分)

package cn.itsource.exam;

import java.util.concurrent.ThreadLocalRandom;

/**
 * 写一个方法,生成n位验证码,验证码范围(1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM)
 * (20分  1.写一个生成指定范围内随机数的方法(8分)2.写生成验证码的方法(12分))
 */
public class Exam5 {

	public static void main(String[] args) {
		String str = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
		for (int i = 0; i < 100; i++) {
			System.out.println(getIdentifyingCode(str, 4));
		}
	}
	
	/**
	 * 生成验证码的方法
	 */
	public static String getIdentifyingCode(String str,int num){
		
		char[] ch = str.toCharArray();
		String result = "";
		for(int i = 0;i < num;i++){
			result += ch[getRandom(0, ch.length)];
		}
		
		return result;
		
	}
	
	/**
	 * 生成随机数的方法
	 */
	public static int getRandom(int start,int end){
		ThreadLocalRandom random = ThreadLocalRandom.current();
		return random.nextInt(start, end);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值