从用户获取数字并进行更改并将其转换为字符串

时间:2017-01-11 03:29:10

标签: java string int tostring

我正在制作一个猜测用户生日的数学课程。

用户输入一个数字,让我们说:75622,我从中减去一个数字来获得生日,在这种情况下为42682 - 04/26/82

我希望能够将该整数转换为字符串,然后在月,日和年之间添加正斜杠..如果只有5位而不是6位,则还要添加0(因为月份为1-9)。

我知道如何使用Integer.toString(int)将其转换为字符串,但我不知道如何插入正斜杠和零。

谢天谢地!

2 个答案:

答案 0 :(得分:3)

如果您只想将int转换为String(带有前导0),可以使用String.format

int num = 42682;
String s = String.format("%06d", num);

然后,您可以使用其他String.formatString.substring来构建所需的输出,例如

String output = String.format("%s/%s/%s", s.substring(0, 2), 
        s.substring(2, 4), s.substring(4));
System.out.println(output);

哪些输出(根据要求)

04/26/82

答案 1 :(得分:1)

请在下面找到答案:

public class CreateDateFromNumber {

    public static void main(String[] args) {
        int number = 42682;
        System.out.println(getDate(number));
    }

    public static String getDate(int number) {
        String numberStr = Integer.toString(number);
        String outputStr = "";

        if (numberStr.length() != 5 && numberStr.length() != 6) {
            throw new IllegalArgumentException(
                    "Number should be length of 5 or 6");
        }

        if (numberStr.length() == 5) {
            numberStr = "0" + numberStr;
        }

        int var0 = 0;

        while (var0 < numberStr.length()) {
            String var1 = numberStr.substring(var0, var0 + 2);
            outputStr = outputStr + var1;

            if (var0 + 2 < numberStr.length()) {
                outputStr = outputStr + "/";
            }
            var0 = var0 + 2;
        }
        return outputStr;
    }

}