Toon posts:

[java]Loskoppelen van cijfers in een getal

Pagina: 1
Acties:
  • 345 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import javax.swing.JOptionPane;

class  ExtractCijfers
{
    public static void main(String[] args) 
    {
        String string1 = JOptionPane.showInputDialog(null, 
            "Enter value 1", "DialogSom Alpha 1", JOptionPane.QUESTION_MESSAGE);
        
        int longstring1 = Integer.parseInt(string1);
        
        int cijfer1;
        int cijfer2;
        int totaal;

        cijfer1 = longstring1 % 10;
        cijfer2 = longstring1 % 100;
        
        totaal = cijfer1 + cijfer2;

        JOptionPane.showMessageDialog(null, "Het antwoord is " + totaal + "!!!",
            "DialogSom Alpha 1", JOptionPane.INFORMATION_MESSAGE);

        System.exit(0);
    }
}


Heey,

Ik ben een beetje aan het kloten met java. Maar nu ben ik bezig met een programmatje dat de 2 cijfers van een 2 cijferig getal bij mekaar opteld. Dus als je 12 invuld dat het antwoord 3 is. Alleen het programmatje wil niet echt werken. Zou iemand mij kunnen helpen?

Nog wat voorbeeldjes:

Input = 12
Antwoordt = 3

Input = 99
Antwoordt = 18

Input = 27
Antwoordt = 9

[ Voor 4% gewijzigd door Verwijderd op 17-10-2003 18:50 ]


  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Je moet goed nagaan wat je programma doet. Wat doet het programma als je 12 invult?
Eerst zet je cijfer1 op 12 % 10 = 2. Vervolgens zet je cijfer2 op 12 % 100 = 12. Het totaal wordt hierdoor dus 14. Nu is het aan jou om te kijken hoe je cijfer2 de waarde 1 geeft in dit geval.

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


Verwijderd

Topicstarter
Thx Rickets :). Ik heb hem door.

  • Potatoman
  • Registratie: September 2000
  • Laatst online: 20-08 21:56

Potatoman

koniwa

Je kan ook de parseInt niet op de hele string doen, maar los voor elk teken. Dan kan je ze op die manier bij elkaar optellen en hoef je er niet eens een berekening op los te laten. (of de char[] opvragen en deze waarden optellen, niet vergeten de ascii waarde van de char af te halen). :)

[ Voor 8% gewijzigd door Potatoman op 17-10-2003 19:44 ]

The cyclographing developer


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 14:03

Robtimus

me Robtimus no like you

Java:
1
2
3
4
5
int totaal = 0;
for (int i = 0; i < string1.length(); i++)
{
    totaal += (string1.charAt(i) - '0');
}
Kan vreemde resultaten geven bij niet numerieke karakters.
Is zo iig wel generiek voor de alle getallen, niet alleen voor getallen van lengte 2.

Edit: ik kom er net achter dat ik het wiel opnieuw uit heb gevonden. Niet alleen heb ik een eigen Yes-No dialog geschreven, maar ook een eigen dialog dat string arrays aankan. Beiden zitten gewoon in de JOptionPane (showConfirmation, showMessage). Binnenkort maar es vervangen...

[ Voor 60% gewijzigd door Robtimus op 17-10-2003 20:52 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 16-08 19:14

Eelke Spaak

- Vlad -

IceManX schreef op 17 October 2003 @ 20:31:
Java:
1
2
3
4
5
int totaal = 0;
for (int i = 0; i < string1.length(); i++)
{
    totaal += (string1.charAt(i) - '0');
}
Kan vreemde resultaten geven bij niet numerieke karakters.
Is zo iig wel generiek voor de alle getallen, niet alleen voor getallen van lengte 2.

Edit: ik kom er net achter dat ik het wiel opnieuw uit heb gevonden. Niet alleen heb ik een eigen Yes-No dialog geschreven, maar ook een eigen dialog dat string arrays aankan. Beiden zitten gewoon in de JOptionPane (showConfirmation, showMessage). Binnenkort maar es vervangen...
Veiliger, maar een doorn in het oog voor performance-lovers, is dan:
Java:
1
2
3
4
5
int totaal = 0;
for (int i = 0; i < string1.length(); i++)
{
    totaal += Integer.parseInt("" + string1.charAt(i));
}


Deze geeft gewoon een NumberFormatException bij niet-numerieke karakters; zoals het hoort dus.

[ Voor 8% gewijzigd door Eelke Spaak op 17-10-2003 21:24 ]

TheStreme - Share anything with anyone


  • nxt
  • Registratie: November 2001
  • Laatst online: 12-06 10:00

nxt

Vladimir G. schreef op 17 October 2003 @ 21:23: Veiliger, maar een doorn in het oog voor performance-lovers, is dan:
Java:
1
2
3
4
5
int totaal = 0;
for (int i = 0; i < string1.length(); i++)
{
    totaal += Integer.parseInt("" + string1.charAt(i));
}


Deze geeft gewoon een NumberFormatException bij niet-numerieke karakters; zoals het hoort dus.
ik vind 't nogal ranzig om een char aan een string te plakken en dan parseInt aan te roepen.
als je graag een NumberFormatException ziet bij foute input
dan zou ik eerder meteen Integer.parseInt(string1) aanroepen gevolgt door de methode die IceManX noemt.
of bij elke char mbv de methods v/d Character class kijken of 't een getal is, en zo niet zelf een exception gooien.

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 16-08 19:14

Eelke Spaak

- Vlad -

nxt schreef op 17 October 2003 @ 22:00:
[...]

ik vind 't nogal ranzig om een char aan een string te plakken en dan parseInt aan te roepen.
als je graag een NumberFormatException ziet bij foute input
dan zou ik eerder meteen Integer.parseInt(string1) aanroepen gevolgt door de methode die IceManX noemt.
of bij elke char mbv de methods v/d Character class kijken of 't een getal is, en zo niet zelf een exception gooien.
Je hebt gelijk (en dat geef ik niet zo heel snel toe). :X

TheStreme - Share anything with anyone

Pagina: 1