Originariamente inviato da dom.vecchioni
quindi al posto della somma ch[i], io devo mettere il primo valore char, come faccio a dirgli quel valore? invece che quello ASCII?
Le cifre decimali in ASCII hanno il codice da 48 a 57 (30h ... 39h). Quindi è sufficiente sottrarre 48 per avere il valore del digit.

È chiaro che in input l'utente dovrebbe inserire solo digit ma ... che succede se vengono inseriti altri caratteri? Il tuo sistema di conversione dovrebbe essere abbastanza "robusto" da gestire questa situazione. In tal senso, sarebbe più appropriato realizzare un metodo che effettua questa conversione da char[] a int e controllando che ogni carattere sia nel range sopra citato e se non lo è dovrebbe lanciare una eccezione (sarebbe appropriato un NumberFormatException, che è poi quello che lancia parseInt()).

Poi comunque bisogna anche vedere il formato del numero. Ad esempio, vuoi poter accettare anche numeri negativi?? Vuoi poter accettare spazi a sinistra/destra del numero?