WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Java - Programm verändern wie? (http://www.wcm.at/forum/showthread.php?t=115643)

paul19 16.11.2003 12:44

Java - Programm verändern wie?
 
hi!
Ich hoffe ihr könnt mir helfen!

Wie kann ich dem Programm beibringen, dass es, mit der Ausnahme vom Zeichen 'M', die anderen Zeichen nur 3 mal hintereinander vorkommen dürfen?

zb: DDD richtig
Ausgabe: 1500

DDDD falsch
Ausgabe: FALSCHE EINGABE

usw.



genaue Spezifikation siehe zip-Archiv
enthält:
eprog.jar
Roemin.java
Roemin.html -> spezifikation

Vielen Dank schon im voraus
paul

rollipolli 16.11.2003 12:50

EPROG auf der TU Wien?!

Dann schau auf www.informatik-forum.at...

jak 16.11.2003 13:31

Ich glaub wohl eher Uni...
Falls du Wirtschaftsinformatik studierst:

ansonsten:
Code:

private boolean count (String what){
 char[]w=what.toCharArray();
 int max=3,count=0,i=0;
 charToCount=w[0];
 if (charToCount=='M') max=4;
 boolean loop=true;
 while (loop){
  if (i<w.length) loop=w[i]==charToCount;
  count++;
  i++;
 }
 return count<=max;
}

Der Funktion müsstest du entweder die einzelnen Teilstrings übergeben (also alle aufeinanderfolgenden Buchstaben) oder du überarbeitest sie etwas.

Jak

Flink 17.11.2003 09:03

Code:

char old_char = ' ';
char akt_char;
char m_char = 'm';
int count = 0:
final int max_count = 3;
           
for (int i = 0; i < eing.length(); i++)
{
        akt_char = eing.charAt(i);
        if ((akt_char == old_char) && (akt_char != m_char))
        {
                count++;
                if (count > max_count)
                {
                        throw MAX_UEBESCHREITUNG_EXCEPTION;
                }
        }
        else
        {
                count = 0;
        }
        old_char = akt_char;
}

Anmerkung zu Roemin.java:
die Codestellen
Code:

if (zahlen[i] == 77)
            {
                summe = summe + 1000;

könnten einfacher (zusammengefasst) werden, wenn du die Werte 77, 1000 etc. in ein Array schreiben würdest.

jak 17.11.2003 19:37

Ich glaube kaum daß er schon throw catch kann:rolleyes:
Außerdem: müßte es nicht heißen throw new MAX_UEBESCHREITUNG_EXCEPTION; ?
Außerdem würde ich lieber eine IllegalArgumentException werfen, die muss nicht erst extra definiert werden.

@paul19: Falls du es noch nicht weißt: throw-catch ist eine Methode um Fehler zu behandeln:
Du schreibst eine Methode die bei einem bestimten Fehler eine exception "wirft" (mit dem befehl "throw").
Wenn du diese Methode aufrufst musst du sie in einen try-Block schreiben.
z.B.:Methode heißt charCount, wirft IllegalArgumentException
dann schreibt man in der aufrufenden Methode
try{charCount();}
catch(IllegalArgumentException e){...tu irgendwas...}
(für e kannst du irgendetwas hinschreiben)

Der catch Block wird nur ausgeführt wenn die Exeption geworfen wird.
(Du kannst z.B. den Fehler auf der Konsole ausgeben, e.toString() liefert wie der Name schon sagt einen String mit der Exception zurück);

Jak


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag