2017-01-15 7 views
4

Я новичок в Java, и мне нужна помощь.Java limit length integer

Может кто-нибудь сказать мне, как я могу установить предельную длину в integer = 6 в этом коде.

Например

id = 124973 

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

У вас может быть 'setId' has' this.id = id% 1000000;'. –

+1

Что вы хотите сделать, если «длина» не 6 или меньше? – harold

ответ

6

Один из способов сделать это так:

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); 
+0

Не будет 'Math.log10 (id)

+0

@EliSadoff Право! Я не думаю об этом. :) Я отправлю и * Редактирую *. Спасибо – user2004685

+0

Не беспокойтесь! Отличный ответ! –

2

проверки ИЯФ перед назначением его

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

"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 
} 
3

В вашем методе setId добавить проверку:

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

Большинство ответов просто предполагают, что вы хотите, чтобы некоторые из них были дефолтны, когда вы устанавливаете «неправильный» идентификатор ... Я думаю, что это действительно плохая практика, которая приведет к неожиданностям по линии. – john16384

0

В номерах ява, как межд не имеют длину. Хотя 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 
} 
}