On Sun, 06 Oct 2002 16:56:03 +0200, Jimmi Wolff wrote:
> Hej igen
>
> Nu har jeg et mindre problem igen.
>
> Jeg skal løbe en string igennem for at se om alle karakterne er mellem 0
> og 9. Metoden retuner så en boolean.
>
> Er der nogen som har en nem måde??
> På de måder jeg har prøvet har den ikke kørt hele stringen igennem. Nu
> har jeg gjort det sådan her. Det kan godt compile med det vil ikke
> kører???????
>
> Koden:
> public boolean numerisk(String s)
> {
> int sum = 0;
>
> for (int i = 0; i <= s.length(); i++)
> {
> if ((s.charAt(i) >= '0') && (s.charAt(i) <= '9'))
> sum++;
> else
> sum--;
> }
>
> if (sum == 10)
> return true;
> else
> return false;
> }
Hej Jimmy
Ovenstånde giver så vidt jeg kan se et positivt svar, hvis antallet af
tegn der er tal er mere 10 mere end antallet af tegn, der ikke er tal
(dårligt formuleret). Prøv med noget a la:
public boolean numerisk(String s) {
for (int i = 0; i <= s.length(); i++) {
if (!((s.charAt(i) >= '0') && (s.charAt(i) <= '9')))
// Hvis tegnet ikke er et tal; afslut med false
return false;
}
// Vi har nu været hele strengen igennem og kun fundet tal
return true;
}
I ovenstående tager jeg forbehold for slå fejl og logisk fejl.
PS. Du har vist en slåfejl i din for-løkke:
--
Mikkel Bundgaard
Student at IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum