如何将生成的2位数随机数转换为字母

时间:2015-12-22 08:38:41

标签: java

package com.nusecond.Code;
import java.util.*;
public class Code1 {
    public static void main(String args[]){
         HashMap<Integer, Character> hmap = new HashMap<Integer, Character>();
         hmap.put(0, 'D');
         hmap.put(1, 'G');
         hmap.put(2, 'B');
         hmap.put(3, 'Q');
         hmap.put(4, 'P');
         hmap.put(5, 'M');
         hmap.put(6, 'R');
         hmap.put(7, 'Y');
         hmap.put(8, 'Z');
         hmap.put(9, 'I');

Iterator<Integer> keySetIterator = hmap.keySet().iterator();
while(keySetIterator.hasNext()){
int key=keySetIterator.next();


System.out.println("key:" + key +  " value: "  +hmap.get(key));

}   
for(int j=1001;j<9999;j++);
Random random=new Random();
int res=random.nextInt(100);
System.out.println(res);
    }
    }

输出:

key:0 value: D
key:1 value: G
key:2 value: B
key:3 value: Q
key:4 value: P
key:5 value: M
key:6 value: R
key:7 value: Y
key:8 value: Z
key:9 value: I
12

这里我试图将生成2位数的随机数转换为字母 例如在上面代替12我想要GB ....... 像那样.... 任何帮助.....提前感谢.... 我有一个截止日期来完成这个.... 所以plzz帮助我.......

5 个答案:

答案 0 :(得分:1)

请使用以下代码,

HashMap<Integer, Character> hmap = new HashMap<Integer, Character>();
hmap.put(0, 'D');
hmap.put(1, 'G');
hmap.put(2, 'B');
hmap.put(3, 'Q');
hmap.put(4, 'P');
hmap.put(5, 'M');
hmap.put(6, 'R');
hmap.put(7, 'Y');
hmap.put(8, 'Z');
hmap.put(9, 'I');

Iterator<Integer> keySetIterator = hmap.keySet().iterator();
while(keySetIterator.hasNext()){
int key=keySetIterator.next();


System.out.println("key:" + key +  " value: "  +hmap.get(key));

}
for(int j=1001;j<9999;j++);
Random random=new Random();
int res=random.nextInt(100);
System.out.println(res);
String s = "";
s = String.valueOf(res);
String result="";

for(int i=0;i<s.length();i++)
{
    result+=hmap.get(Integer.valueOf(String.valueOf(s.charAt(i))));
}

System.out.println(result);
        }

答案 1 :(得分:0)

我不确定,我明白你的想法。但试试这个:

String s = "";
s = String.valueOf(res);
System.out.println(hmap.get(Integer.valueOf(String.valueOf(s.charAt(0)))) + "" + hmap.get(Integer.valueOf(String.valueOf(s.charAt(1)))));

如果res为12,则结果为GB等。 先申报s,然后将我的代码的第二和第三行放入for

答案 2 :(得分:0)

您可以使用i%10获取1和i / 10获取小数,例如:

int i = 12;
System.out.println(i / 10); // would be 1
System.out.println(i % 10); // would be 2

然后用它来提供你的hashmap。

答案 3 :(得分:0)

试试这个

Select date_of_joining,*  from emp_mst Where
Dt_Of_Join=convert(varchar(10),dateadd(month,-6,getdate()),101)

答案 4 :(得分:0)

尝试此程序,因为它提供了上述输出。希望这会有所帮助。

    int [] digit_face;  
        int digits=0;          
         HashMap<Integer, Character> hmap = new HashMap<Integer, Character>();
         hmap.put(0, 'D');
         hmap.put(1, 'G');
         hmap.put(2, 'B');
         hmap.put(3, 'Q');
         hmap.put(4, 'P');
         hmap.put(5, 'M');
         hmap.put(6, 'R');
         hmap.put(7, 'Y');
         hmap.put(8, 'Z');
         hmap.put(9, 'I');


for(int j=1001;j<9999;j++);
Random random=new Random();
int res=random.nextInt(100);

for(int i=res;i>0;i=(i/10)){
    digits++;
}

digit_face=new int[digits];

digits=0;

for(int i=res;i>0;i=(i/10)){
    digit_face[digits]=i%10;
    digits++;
}

for(int i=(digits-1);i>=0;i--){
    System.out.print(hmap.get(digit_face[i]));
}