2017-01-15 172 views
4

我是Java新手,需要一些幫助。Java限制長度整數

有人能告訴我如何在此代碼中將限制長度設置爲整數= 6。

例如

id = 124973 

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

你可以讓'setId'有'this.id = id%1000000;'。 –

+1

當「長度」不是6或更少時,你想要做什麼? – harold

回答

6

一種方式來做到這一點是這樣的:

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

'Math.log10(id)

+0

@EliSadoff對!我沒有想過。 :)我會發布和*編輯*。謝謝 – user2004685

+0

不用擔心!很好的答案! –

2

分配之前驗證所述InP它

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

「將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 
} 
3

在你setId方法增加一個檢查:

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

大部分的答案都假設當你設置一個「錯誤」的編號時,你會想要一些默認的......我認爲這是非常糟糕的做法,這將導致驚喜的下降。 – john16384

0

在如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 
} 
}