www.pudn.com > Mytyper3.rar > Typer.java, change:2006-04-14,size:2115b


import java.util.Random; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.*; 
public class Typer { 
    //定义word数组存放各个字符个数 
	public static int[] word; 
	//定义正确,错误个数变量 
	public static int type,right,wrong; 
	//定义最大值,最大个数 
	public static int max,many,Mmax; 
	/** 
	 * 给最大值,最大个数赋值 
	 */ 
	public Typer(int Max,int Many) 
	{ 
		max=Max; 
		many=Many; 
	} 
	/** 
	 * 创建一个初始值都为指定数的word数组 
	 */ 
	public static void createArray() 
	{ 
		 
		word=new int[max]; 
		for(int i=0;i<max;i++) 
			word[i]=many; 
	} 
	/** 
	 * 返回word数组的剩余字符数 
	 */ 
	public static int leftArray() 
	{ 
		int left=0; 
		for (int i=0;i<max;i++) 
		{ 
			left+=word[i]; 
		} 
		return left; 
	} 
	/** 
	 * 返回一个键盘输入的字符串 
	 */ 
	public static String inputString() 
	{ 
		BufferedReader buff=new BufferedReader(new InputStreamReader(System.in)); 
		String s=null; 
		try 
		{ 
			s=buff.readLine(); 
		} 
		catch(IOException e) 
		{ 
			e.printStackTrace(); 
		} 
		while(s.length()!=Mmax) 
		{ 
			System.out.println("Error Strings Length!"); 
			s=inputString(); 
		} 
		return s; 
			 
	} 
	/** 
	 * 产生一个指定个数的随即字符串 
	 */ 
	public static String printString() 
	{ 
		Random rand=new Random(); 
		String printTemp=""; 
		int num; 
		char charTemp; 
		Mmax=leftArray()<max?leftArray():max; 
		for(int i=0;i<Mmax;i++) 
		{ 
			num=rand.nextInt(max); 
			while(word[num]=0) 
				num=rand.nextInt(max); 
			word[num]--; 
			charTemp=(char)(num+'a'); 
			printTemp+=charTemp; 
		} 
		return printTemp; 
	} 
	/** 
	 * 返回混淆的字符串 
	 */ 
	public static String checkString(String printString,String inputString) 
	{ 
		String errorString=""; 
		char oTemp,iTemp; 
		type+=printString.length(); 
		for (int i=0;i<Mmax;i++) 
		{ 
			oTemp=printString.charAt(i); 
			iTemp=inputString.charAt(i); 
			if (oTemp==iTemp) 
			{ 
				right++; 
			} 
			else 
			{ 
				wrong++; 
				word[(int)(oTemp-'a')]++; 
				word[(int)(iTemp-'a')]++; 
				errorString=errorString+iTemp+" as "+oTemp+","; 
			} 
		} 
		return errorString; 
	} 
	 
 
}