Wyciągnięcie z int określonej ilości cyfr

0

Witam
potrzebuję jakiegoś prostego rozwiązania
mam

int liczba = 20080923234
i potrzebuję użycia funkcji aby go zapisać :
int a = 080923;
int b = 234;
jak to prosto zrobić??

0
int b = liczba % 1000;
int a_prim = liczba / 1000; // dzielenie całkowite
int a = -(20000000 - aprim);

Nie gwarantuje, ze działa.

0

Po pierwsze coś takiego

int a = 080923;

zostanie "obcięte" do int a = 80923;

 i jeżeli później będziesz chciał to wykorzystać w czymś co wypisuje sformatowane liczby to się zawiedziesz. W tym przypadku użyj formaterów.
Po drugie 20080923234 >> Integer.MAX_VALUE, czyli musisz użyć Long.
```java
long liczba = 20080923234l;
long a = liczba%1000;
long b = ((liczba% 1000000000 )- a)/1000;

Da wynik zgodny z oczekiwaniami.

0

No tak muszę użyć tych danych w bazie więc nie może być 80923 tylko 080923.
dziękuję za odpowiedź

0

W bazie danych w sensie, że obiekt jest w postaci iluś tam cyfr poprzedzonych zerem? Hm.. czy w bazie trzymasz numery jako typ Number czy jako jakiś varchar?

0

Można użyć printfa przecież do wypisywania. Tzn w Javie to jest Formatter.format(...)

0

W bazie w sensie że obiekt jest przechowywany i moze być poprzedzony zerem i tu zaczyna się ciekawie

Aby wyjąć obiekt z bazy potrzebuję dwóch intów bo takie mam zapytanie. i kazdy z tych intów moze zaczynać się zerem :) moze nie musi
jak mam rok 2011 to nie zacznie sie zerem jak mam 2003 to wtedy zacznie się zerem .
w bazie trzymam jako int .

0

Możesz przebudowac zapytanie tak by użyć rzutowani inta na varchar?

0

stworzzlem zapytanie NamedQuery selest n from table where concat(str1, str2) like ('__' , :str);

i dziala :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1