Java 限制长度整数

Java limit length integer

我是 Java 的新人,我需要一些帮助。

谁能告诉我如何在此代码中将限制长度设置为整数 = 6。

例如

id = 124973 

public void setId(int id) {
    this.id = id;
}

在分配之前验证 inp

public void setId(int id){
    if(id>0 && id<=999999){
        this.id= id;
    }else{
        this.id= 0;
    }
}

"String.valueOf(id).length()" - 检查您在 setId 方法参数中收到的 int 变量的长度。

public void setId(int id){
    if(6 >= String.valueOf(id).length())
       this.id= id;
    else
       //do something if the received id's length is greater than max
}

一种方法是这样的:

public boolean checkLength(int id, int length) {
    return 0 == (int)(id / Math.pow(10, length));
}

编辑:

根据下面的@EliSadoff 评论,您也可以这样做:

public boolean checkLength(int id, int length) {
    return Math.log10(id) < length;
}

然后您可以像这样简单地调用此函数:

checkLength(123456, 6);

在您的 setId 方法中添加检查:

if (id >= 1000000 || id < 0) {
   throw new IllegalArgumentException("id must be max 6 digits and cannot be negative");
}  

在 java 中,像 int 这样的数字没有长度。尽管 Integer 是 class,但没有 length() 函数——请参阅 Java 文档。因此,要找到长度,您必须使用 String.valueOf(Integer_value) 将 Integer 转换为 String。所以,你可以这样做:

Public void limit(Integer a) {
if(String.valueOf(a)<=6) {
    //do your logic
}
else {
//printout Integer length limit exceeded
}
}