我是Java新手,需要一些帮助。Java限制长度整数
有人能告诉我如何在此代码中将限制长度设置为整数= 6。
例如
id = 124973
public void setId(int id) {
this.id = id;
}
我是Java新手,需要一些帮助。Java限制长度整数
有人能告诉我如何在此代码中将限制长度设置为整数= 6。
例如
id = 124973
public void setId(int id) {
this.id = id;
}
一种方式来做到这一点是这样的:
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);
分配之前验证所述InP它
public void setId(int id){
if(id>0 && id<=999999){
this.id= id;
}else{
this.id= 0;
}
}
“将String.valueOf(ID)。长度()” - 检查一个int变量的长度,这会收到在setId方法参数中。
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
}
在你setId
方法增加一个检查:
if (id >= 1000000 || id < 0) {
throw new IllegalArgumentException("id must be max 6 digits and cannot be negative");
}
大部分的答案都假设当你设置一个“错误”的编号时,你会想要一些默认的......我认为这是非常糟糕的做法,这将导致惊喜的下降。 – john16384
在如int java的数字不具有的长度。尽管Integer是一个类,但没有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
}
}
你可以让'setId'有'this.id = id%1000000;'。 –
当“长度”不是6或更少时,你想要做什么? – harold