2017-01-15 3 views
4

Ich bin neu in Java und brauche Hilfe.Java Limit Länge Integer

Kann mir jemand sagen, wie ich in diesem Code die Grenzlänge auf Integer = 6 setzen kann.

Zum Beispiel

id = 124973 

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

Sie können 'setId' haben' this.id = id% 1000000; '. –

+1

Was möchten Sie tun, wenn die "Länge" nicht 6 oder weniger ist? – harold

Antwort

6

Eine Möglichkeit, es so zu tun ist:

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

EDIT:

Per @EliSadoff Kommentar unten, können Sie auch etwas tun kann:

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

Sie können diese Funktion dann einfach wie folgt aufrufen:

checkLength(123456, 6); 
+0

Würde 'Math.log10 (id)

+0

@EliSadoff Richtig! Ich denke nicht darüber nach. :) Ich poste und * Edit *. Danke – user2004685

+0

Keine Sorgen! Gute Antwort! –

2

Validierung der inp vor Zuweisung es

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

"String.valueOf (id) .length()" - die Länge eines int-Variable überprüft, die Sie erhalten, im setId Methodenparameter.

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

In Ihrem setId Methode fügen Sie einen Scheck:

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

Die meisten Antworten gehen nur davon aus, dass Sie einen Standard als Standard haben möchten, wenn Sie eine "falsche" ID setzen ... Ich denke, das ist wirklich eine schlechte Übung, die zu Überraschungen führen wird. – john16384

0

in Java Zahlen wie int nicht die Länge haben. Obwohl Integer eine Klasse ist, gibt es keine length() -Funktion - siehe Java-Dokumente. Um die Länge zu finden, müssen Sie Integer in String umwandeln, indem Sie String.valueOf(Integer_value) verwenden. So können Sie wie folgt tun:

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