日期:2014-05-19 浏览次数:21024 次
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());