这些是程序必须遵循的步骤:
到目前为止,我的代码是:
public static void main(String[] args)
{
int digit = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Please enter a four digit pin:");
digit = scan.nextInt(); // scanning for user input
String Hexpin =Integer.toHexString(digit);
System.out.println(Hexpin);
}
我目前需要帮助将引脚转换为十六进制并生成两个大于1000的随机数并将它们转换为十六进制。然而,我可以轻松地做三明治。我试着在此之前寻找答案,但找不到其他任何东西:
C# convert integer to hex and back again
然而,本文将int转换为十六进制字符串而非十进制。
答案 0 :(得分:1)
尝试一下我觉得这就是你要求的。只需要一个小修复。希望有所帮助!
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("Please enter a four digit pin:");
int digit = scan.nextInt(); // scanning for user input as INT
String hexDigit = Integer.toHexString(digit); //convert PIN to hex
int one = ((int)(Math.random()+1000)*10000); //two randoms bw 1000 and 10000
int two = ((int)(Math.random()+1000)*10000);
String oneStr = Integer.toHexString(one); //convert to hex
String twoStr = Integer.toHexString(two); //convert to hex
System.out.println(oneStr + hexDigit + twoStr); //print concated
}
答案 1 :(得分:0)
使用Integer.valueOf(String.valueOf(digit), 16)
进行转化。如果您更改了digit
并将其设为String
,则无需执行String.valueOf(...)
<强>结果:强>
In: 1234
Out(hex): 4660
答案 2 :(得分:0)
要转换为十六进制使用:
String Hexpin = Integer.toHexString(digit);
要转换回整数使用:
int numberFromHex = Integer.parseInt(Hexpin, 16);
明确您的代码评论中所谓的异常结果。