Mam do napisania program w Javie, który odczytuje 1000 różnych liczb zapisanych w pliku tekstowym, i każdą z nich dzieli na pojedyncze cyfry (np liczba 2345 dzieli na 2,3,4,5) i następnie je sumuje. Tu pojawia się problem, nie wiem w jaki sposób podzielić integera na pojedyncze cyfry i najlepiej zapisać je do tablicy i tam zsumować?
Nie potrzeba do tego używać tablicy. Co więcej, nie potrzeba do tego konwertować ciągów znaków na liczby. Wystarczy, że przeiterujesz po wszystkich znakach i zsumujesz wartości tam zapisanych cyfr(znak - ‘0’). Przykład: http://ideone.com/IIFyeF
Jeśli koniecznie musisz parsować ciąg znaków na liczbę, to wystarczy, że wykonasz taki prosty algorytm, by zsumować jej cyfry:
Przykład: http://ideone.com/x91qNW .
W obu przypadkach zakładam, że liczby są dodatnie. Jeśli nie - jeden if sprawdzający znak więcej będzie potrzebny.
Po prostu potraktuj tresc pliku jako jeden wielki string i zliczaj cyfry wybierając substringa po kolei, Zakladam ze liczby sa jakos rozdzielone wiec taki separator musisz pomijać w obliczeniach.
Nie wiem czy Java ma jakieś dobrodziejstwo podobne do Linq i extension methods ale w c# wyglądałoby to np. tak:
string wczytanaLinijka = reader.ReadLine();
int suma = wczytanaLinijka.ToCharArray().Select(znak =>(int)(znak) - 48).Sum();
Jednak to co mi jako pierwsze wpadło do głowy to to samo co napisał fiołek.