日期:2014-05-19 浏览次数:20864 次
char[] letters = new char[10]; for(int i=0;i<10;i++) letters[i] = (char) ('A'+i); String tStr = String.valueOf(System.currentTimeMillis()); System.out.println(tStr); StringBuilder sb = new StringBuilder(); for(int i=1;i<tStr.length();i++) { sb.append(letters[tStr.charAt(i)-'0']); } System.out.println(sb.toString());
------解决方案--------------------
char[] letters = new char[10]; for(int i=0;i<10;i++) letters[i] = (char) ('A'+i); String tStr = String.valueOf(System.currentTimeMillis());//tStr为当前时间 /*因为tStr的字符只有‘0’-‘9’,我们可以把它看成索引到letters中找相应的字符,这样相当于“置换”,所以是不会重复的。*/ StringBuilder sb = new StringBuilder(); for(int i=1;i<tStr.length();i++) { sb.append(letters[tStr.charAt(i)-'0']);/*tStr.charAt(i)-'0'转换成相应的数字,如‘9’-‘0’=9*/ } System.out.println(sb.toString());