【问题标题】:How to add leading zeros to an int?如何将前导零添加到int?
【发布时间】:2014-09-09 03:32:31
【问题描述】:

如果我输入一个 int 值,是否可以保留前导零。例如,如果我输入 0123,有没有办法在不格式化数据的情况下传递该零。 我在一个网站上遇到了一个练习,该练习要求输入一个 isbn 编号作为 int 并对其进行验证。给出的初始代码如下。

import java.util.Scanner;

public class isbncheck {

    public static void main(String[] args) { 
        int num= 0;
        int digit = 0;
        int sum = 0;

        System.out.println("Enter ISBN Number:");
        Scanner sc = new Scanner(System.in);

        num = sc.nextInt();

        /*
        Your code here
        */

        System.out.println("The ISBN number is:");
    }
}

该网站的链接是http://www.programmr.com/challenges/isbn-validation-1

如果我想获取输入的第一个数字并对其进行处理,如果第一个整数是 0,我不能。要测试代码,输入是 0201314525。但是我丢失了初始零,然后我不能代码工作。我使用 String 输入而不是 int,然后我可以操纵它来做我想做的事。是否可以根据呈现方式完成代码?

【问题讨论】:

  • 我猜即使转换为 int 时的字符串输入也会删除那些零!
  • 如果对象要验证某些用户输入,您需要将输入保留为字符串。然后,您可以对字符串执行验证,例如该值是否为整数。
  • 应该可以,以后格式化。看看this question我把你的问题标记为重复,但现在我不太确定
  • 其他人都说了什么,我只是补充一下结论:不,该代码无法完成以按原样满足要求。但这也是一个学习的时刻;网络也充满了废话。尽量坚持使用信誉良好的来源获取信息和指导。
  • 感谢您的回答。我也认为不能那样做。我做了 myinput.nextString()。然后我逐个字符地操作字符串字符 string.chartAt() 以获得不同的数字。

标签: java


【解决方案1】:

您需要将值保存为字符串。无论如何,您都应该使用 ISBN 号之类的东西来执行此操作,因为它的值不是它的大小,而是它的字符串表示形式。

为什么不直接使用“String num = sc.next();”?

【讨论】:

  • 我在解释中添加了这个。我用字符串代替。
【解决方案2】:

没有。 int 不能固有地格式化,您可以将其存储为字符串。或者你需要String#format() int 有前导零,

String isbn = String.format("%013d", num); // 0 fill to 13 digits num

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多