分享些好的java机试题.
1 .现在输入 n 个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供 reset
import java.util.*; public class bycomma{ public static String[] splitStringByComma(String source){ if(source==null||source.trim().equals("")) return null; StringTokenizer commaToker = new StringTokenizer(source,","); String[] result = new String[commaToker.countTokens()]; int i=0; while(commaToker.hasMoreTokens()){ result[i] = commaToker.nextToken(); i++; } return result; } public static void main(String args[]){ String[] s = splitStringByComma("5,8,7,4,3,9,1"); int[] ii = new int[s.length]; for(int i = 0;i<s.length;i++){ ii[i] =Integer.parseInt(s[i]); } Arrays.sort(ii); //asc for(int i=0;i<s.length;i++){ System.out.println(ii[i]); } //desc for(int i=(s.length-1);i>=0;i--){ System.out.println(ii[i]); } } }
package test.format; import java.text.NumberFormat; import java.util.HashMap; public class SimpleMoneyFormat { public static final String EMPTY = ""; public static final String ZERO = " 零 "; public static final String ONE = " 壹 "; public static final String TWO = " 贰 "; public static final String THREE = " 叁 "; public static final String FOUR = " 肆 "; public static final String FIVE = " 伍 "; public static final String SIX = " 陆 "; public static final String SEVEN = " 柒 "; public static final String EIGHT = " 捌 "; public static final String NINE = " 玖 "; public static final String TEN = " 拾 "; public static final String HUNDRED = " 佰 "; public static final String THOUSAND = " 仟 "; public static final String TEN_THOUSAND = " 万 "; public static final String HUNDRED_MILLION = " 亿 "; public static final String YUAN = " 元 "; public static final String JIAO = " 角 "; public static final String FEN = " 分 "; public static final String DOT = "."; private static SimpleMoneyFormat formatter = null; private HashMap chineseNumberMap = new HashMap(); private HashMap chineseMoneyPattern = new HashMap(); private NumberFormat numberFormat = NumberFormat.getInstance(); private SimpleMoneyFormat() { numberFormat.setMaximumFractionDigits(4); numberFormat.setMinimumFractionDigits(2); numberFormat.setGroupingUsed(false); chineseNumberMap.put("0", ZERO); chineseNumberMap.put("1", ONE); chineseNumberMap.put("2", TWO); chineseNumberMap.put("3", THREE); chineseNumberMap.put("4", FOUR); chineseNumberMap.put("5", FIVE); chineseNumberMap.put("6", SIX); chineseNumberMap.put("7", SEVEN); chineseNumberMap.put("8", EIGHT); chineseNumberMap.put("9", NINE); chineseNumberMap.put(DOT, DOT); chineseMoneyPattern.put("1", TEN); chineseMoneyPattern.put("2", HUNDRED); chineseMoneyPattern.put("3", THOUSAND); chineseMoneyPattern.put("4", TEN_THOUSAND); chineseMoneyPattern.put("5", TEN); chineseMoneyPattern.put("6", HUNDRED); chineseMoneyPattern.put("7", THOUSAND); chineseMoneyPattern.put("8", HUNDRED_MILLION); } public static SimpleMoneyFormat getInstance() { if (formatter == null) formatter = new SimpleMoneyFormat(); return formatter; } public String format(String moneyStr) { checkPrecision(moneyStr); String result; result = convertToChineseNumber(moneyStr); result = addUnitsToChineseMoneyString(result); return result; } public String format(double moneyDouble) { return format(numberFormat.format(moneyDouble)); } public String format(int moneyInt) { return format(numberFormat.format(moneyInt)); } public String format(long moneyLong) { return format(numberFormat.format(moneyLong)); } public String format(Number moneyNum) { return format(numberFormat.format(moneyNum)); } private String convertToChineseNumber(String moneyStr) { String result; StringBuffer cMoneyStringBuffer = new StringBuffer(); for (int i = 0; i < moneyStr.length(); i++) { cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1))); } // 拾佰仟万亿等都是汉字里面才有的单位,加上它们 int indexOfDot = cMoneyStringBuffer.indexOf(DOT); int moneyPatternCursor = 1; for (int i = indexOfDot - 1; i > 0; i--) { cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor)); moneyPatternCursor = moneyPatternCursor == 8 ? 1 : moneyPatternCursor + 1; } String fractionPart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf(".")); cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("."), cMoneyStringBuffer.length()); while (cMoneyStringBuffer.indexOf(" 零拾 ") != -1) { cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(" 零拾 "), cMoneyStringBuffer.indexOf(" 零拾 ") + 2, ZERO); } while (cMoneyStringBuffer.indexOf(" 零佰 ") != -1) { cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(" 零佰 "), cMoneyStringBuffer.indexOf(" 零佰 ") + 2, ZERO); } while (cMoneyStringBuffer.indexOf(" 零仟 ") != -1) { cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(" 零仟 "), cMoneyStringBuffer.indexOf(" 零仟 ") + 2, ZERO); } while (cMoneyStringBuffer.indexOf(" 零万 ") != -1) { cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(" 零万 "), cMoneyStringBuffer.indexOf(" 零万 ") + 2, TEN_THOUSAND); } while (cMoneyStringBuffer.indexOf(" 零亿 ") != -1) { cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(" 零亿 "), cMoneyStringBuffer.indexOf(" 零亿 ") + 2, HUNDRED_MILLION); } while (cMoneyStringBuffer.indexOf(" 零零 ") != -1) { cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(" 零零 "), cMoneyStringBuffer.indexOf(" 零零 ") + 2, ZERO); } if (cMoneyStringBuffer.lastIndexOf(ZERO) == cMoneyStringBuffer.length() - 1) cMoneyStringBuffer.delete(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length()); cMoneyStringBuffer.append(fractionPart); result = cMoneyStringBuffer.toString(); return result; } private String addUnitsToChineseMoneyString(String moneyStr) { String result; StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr); int indexOfDot = cMoneyStringBuffer.indexOf(DOT); cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN);
/** 以前都不用这种方法,多看看API还是有收获的*/public static String reverseStr(String str){ StringBuffer sb = new StringBuffer(str); sb.reverse(); return sb.toString();}
public static boolean isPerfectNumber(int num){ int total = 0; for(int i=1;i<=num/2;i++){ if(num%i==0)total+=i; } if(total == num) return true; return false;}
/** 就是一个递归处理文件夹嵌套*/public static void listAllFile(File f){ if(f.isFile()){ System.out.println(f.getAbsolutePath()); }else if(f.isDirectory()){ File[] fl = f.listFiles(); for(File ff:fl){ if(ff.isFile()){ System.out.println(ff.getAbsolutePath()); }else if(ff.isDirectory()){ listAllFile(ff); } } }}
public class PlayCard {public static void main(String[] args) { final int CART_ARRAY_LEN = 54; int[] carts = new int[CART_ARRAY_LEN]; for(int i=0;i<CART_ARRAY_LEN;i++){ carts[i]=i+1; } for (int i = 0; i <CART_ARRAY_LEN ; i++) { int rdmNum1 = (int) (Math.random() * 54); int rdmNum2 = (int) (Math.random() * 54); int temp = carts[rdmNum1]; carts[rdmNum1] = carts[rdmNum2]; carts[rdmNum2] = temp; } for(int i=0;i<CART_ARRAY_LEN;i++){ System.out.println(carts[i]); }}}
public class Test { public static void main(String[] args) { String str = "dsfdsfsdfsdf"; Map<Character,Integer> d = new HashMap<Character, Integer>(); for(int i = 0;i<str.length();i++){ char c = str.charAt(i); if(d.containsKey(c)){ d.put(c, d.get(c)+1); } else{ d.put(c, 1); } } System.out.println(d); } }
public static void printCount(String str){ Map<Character,Integer> map = new HashMap<Character,Integer>(); char[] charArray = str.toCharArray(); final int ARRAY_LEN = charArray.length; for (int i = 0; i < ARRAY_LEN; i++) { if(!map.containsKey(charArray[i])){ map.put(charArray[i], 1); } else{ int curCount = map.get(charArray[i]); map.put(charArray[i],curCount+1 ); } } for(Character c:map.keySet()){ System.out.println(c+"出现次数:"+map.get(c)); }