如何将用户指定的整数更改为字符串?

时间:2014-04-22 01:22:31

标签: java string integer type-conversion

我一直在研究程序的方法,我需要将方法中的整数更改为字符串而不更改方法标题。这个方法的输出需要能够在开头有一个零,而我能想到的唯一方法就是用一个字符串。我尝试了各种不同的方法,但如果您没有预定义的数字,我不确定它应该如何工作。到目前为止,互联网一直没有帮助。任何人都可以帮助我指出正确的方向吗?

 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);
  }

3 个答案:

答案 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
}

希望这有帮助