Sehr gut
Und jaa, ich hoffe es 
if (istZiffer(Ziffer)) {
int c = wert((char) Ziffer);
System.out.println("-" + c + " - ");
aktuellerEintrag = speicher(aktuellerEintrag, c, (anzahl2 - 1));
} else {
// hier noch auf +/- prüfen und dies merken.
aktuellerEintrag = ende(aktuellerEintrag);
}
Und als Idee würde ich sagen du machst dir analog zu istZiffer(...) eine getVorzeichen(...) und die rufst du auf wenn i == 0 ist. Sie liefert dir als int entweder 1 wenn es ein + war und -1 wenn es ein - war, was passieren soll wenn man ?123 eingibt musst du dir noch überlegen. Und diesen Returnwert speicherst du dir analog zu letzterEintrag und aktuellerEintrag ab. z.B. aktuellesVorzeichen, letztes Vorzeichen. Und beim Vergleich der Eingabewerte multiplizierst du sie jeweils noch mit ihrem Vorzeichen.
Code:if (istZiffer(Ziffer)) { int c = wert((char) Ziffer); System.out.println("-" + c + " - "); aktuellerEintrag = speicher(aktuellerEintrag, c, (anzahl2 - 1)); } else { // hier noch auf +/- prüfen und dies merken. aktuellerEintrag = ende(aktuellerEintrag); }
Ja, war blöd ausgedrückt. Einfach eine Methode die als Input das gelesene Zeichen kriegt, prüft ob es '+', '-' oder sonstwas war und dementsprechend 1, -1 zurückliefert. z.B. würde ich immer 1 zurückliefern ausser wenn es '-' war.Wie meinst du "analog zu istZiffer..."
Alles klar. Danke!!Vielleicht habe ich gleich Zeit dann probiere ich es mal.
public class Aufgabe2 {
public static int letzterEintrag;
public static int aktuellerEintrag;
public static int letztesVorzeichen = 1;
public static int aktuellesVorzeichen = 1;
public static void main(String[] args) throws Exception {
init();
}
/* Aktueller Eintrag wird auf 0 gesetzt
* Methode (eingabe) wird gestartet
*/
public static void init() throws Exception {
aktuellerEintrag = 0;
aktuellesVorzeichen = 1;
eingabe();
}
/* Eingabe wird eingelesen */
public static void eingabe() throws Exception {
System.out.println("#######################################");
System.out.println(" ");
System.out.println("Gib deine gewünschten Ziffern ein: ");
int Ziffer = System.in.read();
int anzahl = System.in.available();
int anzahl2 = System.in.available();
for (int i = 0; anzahl > i; i++) {
if (istZiffer(Ziffer)) {
int c = wert((char) Ziffer);
System.out.println("-" + c + " - ");
aktuellerEintrag = speicher(aktuellerEintrag, c, (anzahl2 - 1));
} else {
if (i==0) {
aktuellesVorzeichen = istVorzeichen(Ziffer);
System.out.println("Vorzeichen: "+aktuellesVorzeichen);
}
aktuellerEintrag = ende(aktuellerEintrag);
}
Ziffer = System.in.read();
anzahl2 = System.in.available();
}
System.out.println();
analyze();
}
/* Rechnet die Potenz aus */
public static int potenz(int p) {
int ergebnis2 = 1;
for (int pot = 0; pot < p; pot++) {
ergebnis2 = ergebnis2 * 10;
}
return ergebnis2;
}
/* Addiert die Potenzen der Eingabe */
public static int speicher(int p, int eingabe2, int potenz2) {
p = p + eingabe2 * potenz(potenz2);
return p;
}
/* Ändert ASCII zu int */
public static int wert(char zeichen) {
return (zeichen - '0');
}
/* Prüft ob der aktuelle Eintrag mit dem letzten Eintrag übereinstimmt,
* wenn nicht, soll die Methode init ausgeführt werden
*/
public static void analyze() throws Exception {
System.out.println("Deine Eingabe (nur Ziffern): " + aktuellerEintrag+" Vorzeichen: "+aktuellesVorzeichen+" "+letztesVorzeichen);
if (aktuellesVorzeichen*aktuellerEintrag == letztesVorzeichen*letzterEintrag) {
System.out.println("[ACHTUNG!] Wiederholung = STOP");
} else {
letzterEintrag = aktuellerEintrag;
letztesVorzeichen = aktuellesVorzeichen;
init();
}
}
/* Teilt Eingabe durch 10 wenn Buchstaben / Symbole vorhanden sind */
public static int ende(int a) {
System.out.println("Ende: " + a);
a = a / 10;
return a;
}
/* Soll entscheiden ob ein Zeichen eine Ziffer ist oder nicht */
public static boolean istZiffer(int Ziffer) {
boolean ergebnis = false;
System.out.println("istZiffer: " + Ziffer);
switch (Ziffer) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
ergebnis = true;
break;
default:
break;
}
System.out.println("Ergebnis: " + ergebnis);
return ergebnis;
}
/* Soll entscheiden ob ein Zeichen eine Ziffer ist oder nicht */
public static int istVorzeichen(int Ziffer) {
switch (Ziffer) {
case '-': return(-1);
default:
return(1);
}
}
}