我一直在研究程序的方法,我需要将方法中的整数更改为字符串而不更改方法标题。这个方法的输出需要能够在开头有一个零,而我能想到的唯一方法就是用一个字符串。我尝试了各种不同的方法,但如果您没有预定义的数字,我不确定它应该如何工作。到目前为止,互联网一直没有帮助。任何人都可以帮助我指出正确的方向吗?
public static int encrypt(int num)
{
int digit4 = (num + 7) % 10;
num /= 10;
int digit3 = (num + 7) % 10;
num /= 10;
int digit2 = (num + 7) % 10;
num /= 10;
int digit1 = (num + 7) % 10;
num /= 10;
return (digit3 * 1000 + digit4 * 100 + digit1 * 10 + digit2);
}
答案 0 :(得分:0)
要获取int
的值并将其放在String
内,请使用以下方法:String.valueOf(int variable)
。
答案 1 :(得分:0)
我可能会误解这个问题,但听起来你好像在问一个返回int
的方法是否能够返回一个带有前导零的int。
答案是:不,它不能。如果您想要使用前导零显示输出,则必须使用String.format
或类似内容对其进行格式化。
答案 2 :(得分:0)
这是你要找的东西(猜测):
class Enc{
public static void main(String args[]){
int numb = 1234;
int n = encrypt(numb);
String number = "0" + String.valueOf(n);
System.out.println("0" + n);
System.out.println("0" + encrypt(numb));
System.out.println(number);
}
public static int encrypt(int num){
int digit4 = (num + 7) % 10;
num /= 10;
int digit3 = (num + 7) % 10;
num /= 10;
int digit2 = (num + 7) % 10;
num /= 10;
int digit1 = (num + 7) % 10;
num /= 10;
return (digit3 * 1000 + digit4 * 100 + digit1 * 10 + digit2);
}
}
此程序的输出将是
0189
0189
0189
正如你所看到的,有3种方式(可能更多)打印数字0前导,我不确定这是你想要的,或者可能保持处理数字为0领先。
在这种情况下,你可以:
int myNumber;
if(number.charAt(0) == '0'){
myNumber = 0;
// ... your next process
}
else{
myNumber = Integer.parseInt(number);
// more code here
}
希望这有帮助