Я новичок в Java, и мне нужна помощь.Java limit length integer
Может кто-нибудь сказать мне, как я могу установить предельную длину в integer = 6 в этом коде.
Например
id = 124973
public void setId(int id) {
this.id = id;
}
Я новичок в Java, и мне нужна помощь.Java limit length integer
Может кто-нибудь сказать мне, как я могу установить предельную длину в integer = 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));
}
EDIT:
В соответствии @EliSadoff комментарий ниже, вы можете сделать что-то вроде этого:
public boolean checkLength(int id, int length) {
return Math.log10(id) < length;
}
Вы можете просто вызвать эту функцию следующим образом:
checkLength(123456, 6);
Не будет 'Math.log10 (id)
@EliSadoff Право! Я не думаю об этом. :) Я отправлю и * Редактирую *. Спасибо – user2004685
Не беспокойтесь! Отличный ответ! –
проверки ИЯФ перед назначением его
public void setId(int id){
if(id>0 && id<=999999){
this.id= id;
}else{
this.id= 0;
}
}
"String.valueOf (идентификатор) .length()" - проверяет длину 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
В номерах ява, как межд не имеют длину. Хотя Integer является классом, функция length() отсутствует - см. Документы Java. Итак, чтобы найти длину, вам нужно преобразовать Integer в String с помощью String.valueOf(Integer_value)
. Итак, вы можете сделать так, как показано ниже:
Public void limit(Integer a) {
if(String.valueOf(a)<=6) {
//do your logic
}
else {
//printout Integer length limit exceeded
}
}
У вас может быть 'setId' has' this.id = id% 1000000;'. –
Что вы хотите сделать, если «длина» не 6 или меньше? – harold