Stránka 1 z 1
Java - ciferný součet
Napsal: 09 led 2013 20:53
od eda220
Dobrý den,
dělám úlohu, která v řetězci udělá ciferný součet. Skoro vše mám napsáno (názvu Boolean si nevšímejte, bude se řešit potom). Potřebuji jak udělat aby se mi vypsal hotový ciferný součet, mě to vypisuje po každém čísle (2 potm 4 a nakonec 6, já chci jen 6). Poraďte prosím, děkuji,
► Zobrazit spoiler
package b18Test;
public class BooleanCisla {
void cifernySoucet(String s){
int x=0;
for (int i =0;i<s.length();i++){
char z = s.charAt(i);
if (z == '0'){
x=x+0;
}
if (z == '1'){
x=x+1;
}
if (z == '2'){
x=x+2;
}
if (z == '3'){
x=x+3;
}
if (z == '4'){
x=x+4;
}
if (z == '5'){
x=x+5;
}
if (z == '6'){
x=x+6;
}
if (z == '7'){
x=x+7;
}
if (z == '8'){
x=x+8;
}
if (z == '9'){
x=x+9;
}
System.out.println(x);
}
}
public static void main(String[] args) {
BooleanCisla cifra = new BooleanCisla();
cifra.cifernySoucet("222");
}
}
Re: Java - ciferný součet
Napsal: 09 led 2013 20:58
od domitea
Problém je ve foru, když máš na konci print tak se provede pokaždé. Zkus tam dát podmínku ve stylu:
Kód: Vybrat vše
if (i == --s.lenght())
{
system.out.println(x);
}
a ten print na konci vymazat

Re: Java - ciferný součet
Napsal: 09 led 2013 21:08
od CZechBoY
stačí dát jen ten print za for

pro přehlednost je lepší použít switch nebo rovnou parsovat int ze stringu
Re: Java - ciferný součet
Napsal: 09 led 2013 21:14
od faraon
A zase ASCII! Znak '0' má 48, znak '1' má 49, a tak dále až do devítky...
Když od každé číslice odečteš kód nuly (nebo přímo nulu jako znak), tak dostaneš její číselnou hodnotu
Ale ohlídej si předem jestli jde o číslici, ať ti nevycházejí nesmysly.
Re: Java - ciferný součet
Napsal: 09 led 2013 21:17
od CZechBoY
faraon: nevim co se ti nelíbí, však tam apostrofy má...
Re: Java - ciferný součet Vyřešeno
Napsal: 09 led 2013 21:39
od eda220
To CZechBoY : Když přendám print před cyklus tak mi to vyhodí nulu.
To domitea : kam přesně bych měl tu podmínku ?
To faraon : jak přesně se pracuje s ASCII a javou, respektive, jak udělám to přiřazení.
Díky
Re: Java - ciferný součet
Napsal: 09 led 2013 21:45
od faraon
CZechBoY: Nelíbí se mi představa třiceti řádků kódu v místě, kde stačí
Kód: Vybrat vše
if (znak>='0' && znak <='9')
soucet=soucet+znak-'0';
Re: Java - ciferný součet
Napsal: 09 led 2013 21:48
od CZechBoY
faraon: však porovnává char s charem, to by vadit nemělo, výjde to stejně
eda220: od kdy je sakra "pred" synonymum mého "za"?!!
Re: Java - ciferný součet
Napsal: 09 led 2013 21:54
od eda220
Promiň, špatně jsem to přečetl, už to funguje. Já potom totiž na to budu balit boolean, aby se napsalo true když menší než 6 a false když větší. Díky všem. Uzavírám.