Wie lasse ich eine Zahlenkette, die aus einem String kommt, nach verschiedenen dingen suchen?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ah hey, du schon wieder ;)

Also, versuch ich's doch noch mal:

Ich werde versuchen dir wieder erst meinen Lösungsansatz zu beschreiben, und dann zu zeigen wie ich es umsetze.

Ich möchte, das die Zahlenkette genommen wird und zum beispiel alle Zahlen ausgibt, die größer als die letzte Zahl der zahlenkette sind, aber auch sich selber!
beispiel: (was in der klammer ist, fällt weg!)
8721833211314=87(21)8(3321131)4 = 8784

Okay, du hast also ein Array mit deiner Zahlenkette - ich nenne es in meinen Beispielen mal zahlen[ ].

Ich bin nicht ganz sicher ob du die zahlen die du versuchst zu ermitteln, nur ausgeben möchtest, oder auch in einem Array speichern willst - ich geh' mal von letzterem aus, schließlich kannst du das Array mit dem Ergebniss dann ja auch einfach ausgeben lassen.

Erster Tipp den ich dir generell geben kann: Versuche beim Programmieren (und eigentlich auch sonst im Leben) immer dein Problem in möglichst viele kleine Probleme zu zerlegen, und löse die dann Schritt für Schritt. Probieren wir das mal:

Ich möchte, das die Zahlenkette genommen wird und zum beispiel alle Zahlen ausgibt, die größer als die letzte Zahl...

Ah Stop, hier ist die erste Aufgabe die es zu lösen gilt: Finde heraus was die letzte Zahl ist. Du erinnerst dich vielleicht noch an die Lösung aus dem anderen Beispiel?

Ein Array hat Elemente und eine Länge. Stell dir ein Array namens myArray vor, es sieht folgendermaßen aus:

myArray

Index:      |  0  |  1  |  2  |  3  |
Element:    |  b  |  e  |  f  |  s  |

Was ist die Länge dieses Arrays? Antwort: Vier. Die Länge ist die Anzahl der Elemente die es hat. Und da oben stehen ja, wie man sieht, vier Buchstaben. Aber was steht an Index 4? Richtig, gar nix. Weil der Index bei 0 angefangen hat zu zählen, aber die Anzahl der Elemente bei 1 anfängt zu zählen. Wenn du das letzte Element willst brauchst du also die Länge (.lenght) weniger 1.

Also gilt (in deinem Fall, vergiss ab hier myArray wieder):

int letzteZahl = zahlen[zahlen.length-1]

Java ist ja so freundlich uns .length mitzuliefern, in anderen Sprachen (etwa c++) ist das ein wenig aufwendiger.

Gut, jetzt weißt du, was die Letzte Zahl ist - was kam als nächstes?

und zum beispiel alle Zahlen ausgibt, die größer als die letzte Zahl der zahlenkette sind, aber auch sich selber!

Ah genau, du willst also das Array mit den Zahlen durchgehen, und bei jedem Element gucken, ob es größer oder gleich groß ist wie die Letzte Zahl.

Bauen wir erstmal eine Schleife dafür:

for (int i; i<zahlen.lenght; i++){
    //... hier willst du was abfragen
}

Wie könnte die Abfrage denn aussehen? Naja die Schleife soll ja alle Elemente von zahlen[ ] durchlaufen, und du möchtest wissen, ob das Element welches gerade betrachtet wird, größer oder gleich ist, wie das letzte Element.

"zahlen[i]" ist schon mal das Element, welches gerade betrachtet wird.

das letzte Element hast du auch schon: "letzteZahl."

Also lautet die Frage: Ist zahlen[i] größer/gleich letzteZahl?

Wie sieht das als if-abfrage aus?

if (zahlen[i] >= letzteZahl){...}

Ich bastel dir da noch mal eine for-each Schleife drauß, wie in dem letzten Beispiel - erinnerst du dich noch? Muss man nicht so machen, ist aber hübscher (und einfacher):

for (int i : zahlen){
    if (i >= letzteZahl){
        myArrayList.add(i);
    }
}

Nächste Aufgabe:

Dann würde ich gerne wissen, wie man die Formel umformt, damit nur die letzte zahl zusammengerechnet wird:
beispiel: (was in der klammer ist, fällt weg!)
87321233478213133 = (87)3(212)33(47821)3(1)33 = 3 33 3 33= 1 2 1 2

Also, das hast du ja in deinem Buchstaben-Beispiel schon ganz ähnlich gemacht: Denken wir wieder Schritt für Schritt... Was gibt es zu tun?

Das Array Zahl für Zahl durchlaufen und rausfinden, ob die Zahl die wir angucken die gleiche Zahl ist, wie die letzte Zahl. Wenn die zahl die gleiche ist, dann wollen wir zählen.

Fangen wir an: Das Array Zahl für Zahl durchlaufen - kennste schon:

for (int i; i<zahlen; i++){
    /*...rausfinden, ob die Zahl die wir angucken die
    gleiche Zahl ist, wie die letzte Zahl.*/
}

Nächster Schritt: rausfinden, ob die Zahl die wir angucken die gleiche Zahl ist, wie die letzte Zahl - kennst du auch schon:

letzte Zahl: letzteZahl = zahlen[zahlen.length-1];

aktuelle Zahl: zahlen[i]

if (zahlen[i] == letzteZahl){
    /*...Wenn die zahl die gleiche ist, dann wollen wir
    zählen*/
}

und als letztes: Wenn die zahl die gleiche ist, dann wollen wir zählen - also wie machen wir das? Du hast es in deinem Buchstabenbeispiel schon ganz ähnlich umgesetzt... Wir führen eine neue Variable ein mit der wir uns merken, wie oft zahl[i] == letzteZahl war. Diese Variable zählen wir immer einen hoch, wenn zahl[i] == letzteZahl ist, und wenn nicht, dann setzen wir sie zurück, und adden sie zu unserer ArrayList (die ich hier myArrayList nenne). Es gäbe auch unzählige andere Möglichkeiten außer einer ArrayList, aber da du es so machst bleib ich mal dabei:

if (zahlen[i] == letzteZahl){
    count++
} else {
    count = 0;
    myArrayList.add(count);
}

Wenn du das zusammensetzt hast du die Lösung - wie immer auch hier mein Tipp: for-each :P Problem Gelöst - NEXT!

Dann würde ich gerne wissen wie man es so baut, das die letzte zahl zusammen gezählt wird und alles was drüber ist (die eckigen klammern sind über der letzten zahl, die runden klammern drunter und was keine klammer hat ist wie die letzte zahl)
87321233478213133 = [87]3(212)33[478](21)3(1)33 =
[2] 1 () 2 [3] ()1 () 2 = 2 1 2 3 1 2

Du willst also genau das gleiche machen wie in dem Probelm davor - nur dass du diesmal nicht nur die gleiche Zählst, sondern auch die, die größer sind.

Step-By-Step:

Das Array Zahl für Zahl durchlaufen und rausfinden, ob die Zahl die wir angucken die gleiche Zahl ist, wie die letzte Zahl. Wenn die Zahl die gleiche ist, dann wollen wir zählen. Oder ob die Zahl die wir angucken größer ist als die Letzte Zahl. Wenn die Zahl größer ist, dann wollen wir auch (separat) zählen.

Du siehst - fast die gleiche Aufgabenstellung. Du brauchst lediglich eine Bedingung und einen counter mehr:

if (zahlen[i] == letzteZahl){
    countEqual++
    if (countGreater > 0){
        countGreater = 0;
        myArrayList.add(countGreater);
    }
} else if (zahlen[i] > letzteZahl) {
    countGreater++
    if (countEqual > 0){
        countEqual = 0;
        myArrayList.add(countEqual);
    }
} else {
    if (countEqual > 0){
        myArrayList.add(countEqual);
    } else if (countGreater > 0){
        myArrayList.add(countGreater);
    } 
    countEqual = 0;
    countGreater = 0; 
}
Zudem würde ich gerne noch wissen wie man nicht die letzte Zahl sondern die erste oder zb 5 zahl nimmt und mit der einen abgleich tätigt.

Die erste Zahl eines Arrays steht immer an Index? Nah? Nah? Komm Schon! Riiichtig... 0! ;)

Fragst du nach der ersten Zahl, fragst du nach array[0].

Die 5. Zahl steht immer an Index? Richtiiig... 4.

Gleiches Spiel: array[4].

und ich würde gerne noch wissen wie man anstatt mit der Letzten zahl, das ganze durchsucht mit der letzten zahl +3 oder -2 oder ähnliches!

Wie du die letzte Zahl rausfindest hatten wir ja oben schon. int letzteZahl = array[array.length-1]. Letzte Zahl +3 ist also? letzteZahl+3; easy as that ;)

soo, das war's erstma... viel Erfolg

13

Richtig richtig gut erklärt...

So gut erklärt und ich bin so unfähig :(

Ich habe es in verschiednen methoden versucht umzusetzen, aber schaffe es irgendwie nicht, mein problem zu erkennen und das schon bei der ersten umsetzung....

Wenn du noch mal Zeit und Geduld findest dem gefühlten Sonderschüler unter die Arme zu greifen, wäre das super

https://pastebin.com/RCMAHEvv

ein guten Abend dir!

0
13
@fz234

Ich hab mal deinen Code auf Fehler überprüft und mir sind folgende Sachen dabei aufgefallen:

Da du deinen Array mit

ArrayList<Integer> countsAoB = new ArrayList<>();

instanzierst, musst du berücksichtigen, dass du eigentlich per se keinen Array, sonder eine ArrayList erstellst. Ja, da gibt es einen Unterschied. Den kannst du gerne auch mal nachlesen, jetzt ist erstmal wichtig, dass du weißt, dass das nicht das Gleiche ist.

Eines der Unterschiede sind die existierenden Methoden. Nehme man an, du hast ein Array

int[] zahlen = new int[2];

dann gibt's die Variable length, die uniqueusername7 dir bereits vorgestellt hat, die du bspw. so verwenden kannst:

int size = zahlen.length;

Das Problem ist aber, dass dein Array ja eigentlich ne ArrayList ist. Die bietet die Variable length nicht, aber dafür die Methode size(), die du dafür verwenden musst. Und für andere Sachen gibt's andere Methoden. Also konkret gibt's Beispiele wie:

//Abrufen von Elementen aus deiner Liste: 
int a = array[1]; //als Array
int b = arrayList.get(1); //als ArrayList

//Abrufen der Länge der Liste: 
int c = array.length; // als Array
int d = arrayList.size() // als ArrayListe

Welche Methoden so eine Liste noch so bietet, kannst du ja dann auch googlen, oder werden dir von einer IDE vorgeschlagen, falls du eine nutzen solltest.

Weitere Fehler wären folgende:

Zeile 35:

int letztezahl = ...

im Vergleich zur Zeile 35:

if (i >= letzteZahl){

letzteZahl in Zeile 35 hat ein kleines z, überall anders ist die bei dir aber groß geschrieben. War wahrscheinlich ein Tippfehler.

Zeile 40:

for (int i; i<countsAoB; i++){

Die Schleife ist hier noch unvollständig, weil du nämlich dein i nicht mit einem Wert initialisierst. Woher soll dein Programm wissen, wo es anfangen soll, zu zählen? Da du im Rumpf ja über dein gesamtes Array iterieren willst, soll die Schleife wahrscheinlich bei 0 anfangen zu zählen.

Es gibt aber trotzdem noch ein weiteres Problem:

i<countsAoB

Das macht bis hier hin noch keinen Sinn, denn hier schaust du theoretisch, ob dein i kleiner soll als ein Array. Du willst aber sicherlich mit der Länge der Arrays vergleichen, also musst du da length oder size() verwenden, je nachdem was du verwendest.

for (int i = 0; i<countsAoB.size(); i++){

Sieht dann korrekter aus.

Außerdem verwendest du in Zeilen 43, 45 und 46 eine Variable namens count, die garnicht existiert. Aber ich denke gemeint ist die Variable cnt auf Zeile 7, das lässt sich auch einfach korrigieren.

Auf Zeile 52 hat sich ebenfalls ein Tippfehler eingeschlichen:

for (int i : countAoB){ 
//deine Liste heißt aber countsAoB mit s

Und auf Zeile 43 hast du ein Semikolon vergessen, also einfach ein ";" hinter cnt++ anhängen.

Ich denke das müsste auch alles sein, denn bei mir stimmen die ersten 2 Zeilen deiner Ausgabe nach all den Korrekturen.

2
13
@HylianGamer

Vielen vielen dank!

Ich bin ein großes Stück weiter gekommen und habe wieder einiges gelernt, doch irgendwo habe ich noch einen Fehler!

Meine Zahlen werden als "0" ausgegeben und ich weiß nicht warum!

https://pastebin.com/pcAej1Wq

Mir graut es schon das letzte umzusetzen!

0
13
@fz234

In deinem ersten Pastebin (https://pastebin.com/RCMAHEvv) hast du für die Aufgabe 1 eine for each-Schleife verwendet. Während Arraylisten und Arrays ihre eigenen Eigenschaften haben, können beide auf gleicher Art und Weise, also

 for (int i : countAoB){

verwendet werden.

aber das nur nebenbei. Falls du das per for each-Schleife machen willst, kannst du einfach das aus deinem alten Pastebin verwenden, also

  for (int i : countAoB){
            if (i >= letzteZahl){
                moeglichkeiteins.add(i);
            }
        }

war schon richtig und ich weiß nicht, warum du da was anders gemacht hast.

Falls du aber die for-Schleifen verwenden willst, korrigieren wir einfach den aktuellen Code:

Zeilen 60-68 (Aufgabe 1):

Warum verwendest du da cnt? Wie oben ja beschrieben, musst du nur überprüfen, ob dein aktuelles Element in der Liste >= die letzte Zahl ist. Falls dies der Fall ist, fügst du dieses Element in dein moeglichkeitsarray hinzu. Deine else-Verzweigung kannst du hier entfernen.

Außerdem musst du hier berücksichtigen, da du ja hier eine for-Schleife hast und keine for each, dass i der Index des Arrayelemets ist, und nicht das Element selber. Also hier

 if (countsAoB.get(i) >= letztezahl){
//anstatt if (i >= letztezahl){

verwenden. Insgesamt sieht dann die Aufgabe so aus:

for (int i = 0; i<countsAoB.size(); i++) {

    if (countsAoB.get(i) >= letztezahl) {
        moeglichkeiteins.add(countsAoB.get(i));
    }
}

oder die obige for each-Schleife verwenden.

Zeilen 71 - 79 (Aufgabe 2):

Zeile 73:

if (countsAoB.get(i) == letztezahl){
//anstatt if (i == letztezahl){

Da wir hier wieder mit einer for-Schleife arbeiten. Deine Variante ist nur richtig, falls du eine for each-Schleife verwendest, bitte nicht verwechseln.

Zeilen 76-77:

Die beiden Zeilen musst du vertauschen. Wenn du genau hinschaust, solltest du merken, dass du zuerst cnt auf 0 setzt und danach diese 0 in dein Array hineinschreibst. Aber eigentlich willst du zuerst die Zahl reinschreiben und danach zurücksetzen. Sollte erklären, warum bei dir überall Nullen erscheinen.

Und wo wir schon bei zurücksetzen sind:

cnt = 0;
for (int i = 0; i<countsAoB.size(); i++){            

Du solltest cnt auf 0 setzen, bevor du hier losrechnest, weil ja ansonsten noch Ergebnisse von den vorherigen Rechnungen rumfliegen könnten.

Ich hoffe, dass das alle Fehler bis hierhin waren.

1
13
@HylianGamer

vielen dank für alles!!

Aber so wie es sein sollte ist es bei mir zumindest immer noch nicht.

Ich habe alles eigentlich so umgebaut wie es sein sollte, aber die nullen bleiben irgdenwie bestehen! - langsam ist es mir richtig peinlich zu fragen !!

Ich habe die 3te Aufgabe auch so umgebaut, das sie zu einer arraylist passt, so wie ich denke das es sein sollte, aber da kommt auch keine Wert bei raus, aber es ist auch keine Fehler angegeben.

Wenn du noch Geduld und Motivation hast, wäre ich extrem Dankbar!

https://pastebin.com/FQYmAvqW

einen schönen Samstagabend/nacht dir!

lg

0
13
@fz234
Ich habe alles eigentlich so umgebaut wie es sein sollte, aber die nullen bleiben irgdenwie bestehen!

Ich denke du beziehst dich dabei auf die Aufgabe 2. Naja, dass da nur Nullen erscheinen, liegt an deinem Beispielarray in Zeile 6. Denn die hast du leider so gewählt, dass eben nur Nullen erscheinen können.

Kurz erklärt: dein String

abaababaabbabbaabbbbaaaaabbaaabbbbbba

gibt als Basisarray

[1, 2, 1, 2, 1, 2, 5, 3]

zurück. Und Nach Aufgabe 2 willst du mit allen Vorkommen der letzten Zahl rechnen, aber die 3 kommt nur an letzter Stelle vor. Und deshalb (und weil du in bis jetzt die letzte Zahl selber so gut wie nie mit einbezogen hast) kommen die Nullen zustande.

Nimm also einen anderen String zum austesten, welches zu hilfreicheren Ergebnissen führt, denn für andere Eingaben sind deine Algorithmen (fast) korrekt ^^.

Aufgabe 2

Ich fass mich hier kürzer:

//Zeile 53: 
if (countsAoB.get(i) >= letztezahl){

Mach aus dem >= ein ==, du willst doch laut Aufgabentext nur die Vorkommen der Ziffer selber zusammenzählen, nicht alle, die größer oder gleich sind.

Außerdem kriegst du die nervigen Nullen weg, die da manchmal vorkommen, indem du per einfacher if-Verzweigung alle cnt ignorierst, die Null sind, da die ja eh nicht interessant sind.

also konkret:

} else if (cnt > 0){
    moeglichkeitzwei.add(cnt);
    cnt = 0;
}

Aufgabe 3

Das ist der allergleiche Fehler wie das letzte mal, das hab ich ja in meinem Kommentar davor schon erklärt, deshalb in noch kürzer:

Zeilen 72/73 und 78/79 sind falschrum, einfach reihenfolge jeweils umdrehen.

PS: Deine 4 prints sind innerhalb deiner for-Schleife, ich glaube aber wir wollen diese nur einmal sehen. ^^

Danach sollte eigentlich alles funktionieren.

1
13
@HylianGamer

Das Sorgenkind meldet sich wieder! Ich finds gut das du es noch mit humor nimmst! Gefällt mir ;)

kann deine Hilfe garnicht gut machen, wenn du mal umziehen solltest, dann haste du eine helfende hand sicher ;) Ich lerne auf jedenfall sehr viel dadurch!

Bei Aufgabe 2:

Ich habe den String nun mal ein bisschen verändert, doch es ändert sich nicht, die nullen sind weg, das ist gut, aber es enstehen keine werte - nun bleibt sie leer und wenn es wie in dem Beispiel vorher sein sollte, dann sollte zumindest eine "1" erscheinen, weil die 3 in dem Beispiel zumindest am ende einmal auftaucht!

Aufgabe 3

Bei Aufgabe 3 wird bei mir eine "1" ausgegeben, da verstehe ich nicht mal im ansatz warum. :)

Wenn dir das zu viel wird, kann kann ich die Frage auch noch mal neu stellen, will dir da nicht zu viel aufbürgen!!

lg und nen entspannten sonntag!!

https://pastebin.com/iA6uuWiJ

0
13
@fz234

Ach, ist alles kein problem ^^

Die Fehler beider Aufgaben lassens ich auf das gleiche zurückführen (welches ich selber garnicht bedacht hab).

Um mal als konkretes Beispiel Aufgabe 2 zu nehmen:

Dein Array ist ja wie folgt aufgebaut:

String str = "abaababaabbabbaabbbbaaaaabbaaabbbbbbaaabbbaaabbbaaaa";

und liefert die Zahlen:

[1, 2, 1, 2, 1, 2, 5, 3, 3, 3]

Und hier ist die Aufgabe 2 nochmal:

cnt = 0;
for (int i = 0; i<countsAoB.size(); i++){

    if (countsAoB.get(i) == letztezahl){
        cnt++;
    } else if (cnt > 0){
        moeglichkeitzwei.add(cnt);
        cnt = 0;
    }
}

Das Problem ist folgendes:

Deine letzte Zahl ist 3, also musst du die letzten drei 3en zusammenzählen. Also machst du das auch in den Iteration i=8 und i=9 für die vorletzte Zahl und der Zahl davor.

In der letzten Iteration (also i = 10) zählst du deine letzte 3 auch hinein und hast in cnt die Zahl 3 stehen. Bis jetzt konntest du hoffentlich noch folgen.

Danach verlassen wir aber die for-Schleife, da wir ja durch alle Elemente des Arrays gelaufen sind, ja? In cnt stehen aber noch die Anzahl der 3en am Ende von countsAoB drin. Diese werden aber nicht mehr in dein moeglichkeitenarray hinzufügen.

Alles, was du also noch machen musst, ist am Ende von deiner for-Schleife (also nach verlassen der Schleife) überprüfen, ob cnt > 0 ist und falls das so ist, diese Zahl eben in deinen Array anfügen.

cnt = 0;
for (int i = 0; i<countsAoB.size(); i++){

    if (countsAoB.get(i) == letztezahl){
        cnt++;
    } else if (cnt > 0){
        moeglichkeitzwei.add(cnt);
        cnt = 0;
    }
}
//Wir haben jetzt die for-Schleife verlassen und schauen, ob in cnt noch was drinnen steht
if(cnt > 0){
    moeglichkeitzwei.add(cnt);
}

Aufgabe 3 lässt sich genauso lösen. Nachdem du deine Schleife verlassen hast, schaust du nochmal, ob countEqual > 0 oder countGreater > 0 sind und fügst diese in dein Array hinzu, falls dies der Fall sein sollte.

Außerdem lässt sich dadurch erklären, warum bei dir so eine 1 vorkommt für Aufgabe 3. Dafür verwende ich mal deine Formatierung, die du schon oben verwendet hast in deiner Frage:

1212125333
  -> (121212)[5]333
  -> () [1] 3
  -> 1 3

Wie ich oben ja erklärt habe, war das Problem, dass nach Verlassen der Schleife nicht geschaut wird, ob in den Zählvariablen noch was drinnen steht. Also wird die letzte Zahl nicht hinzugefügt und anstatt der gewünschten Ausgabe [1, 3] haben wir die Ausgabe [1] ohne der 3. :)

0
Ich würde gerne die if formel in all ihren varianten und nutzbarkeiten kennen lernen (...) 

Ein einfaches if prüft eine Bedingung und führt den Programmfluss bei Erfüllung dieses Zustands entweder in seinen Körper oder nicht. Das war es auch schon.

Mit else-if lassen sich mehrere verschiedene Bedingungen überprüfen. Der Programmfluss wird in den ersten Körper geleitet, bei dem die vorherige Bedingung zutrifft.

In den else-Körper ohne Bedingung läuft der Programmfluss, wenn die if-Bedingung nicht erfüllt werden konnte.

Hier befindet sich die Vorgabe:

Ich werde dir dazu keine implementierten Lösungen bieten, denn du möchtest ja die Programmierung mit Java lernen. Die Vorgehensweisen sollten also völlig ausreichen. 😉

Gern kannst du dazu deine konkreten Implementationen zur Bewertung zeigen oder falls du konkrete Hilfe benötigst, schreibe einen Kommentar. Eigentlich solltest du aber selbst bereits Lösungskonzepte zu solchen Aufgaben entwerfen. Sonst lernst du die Programmierung ja nie.

Ich möchte, das die Zahlenkette genommen wird und zum beispiel alle Zahlen ausgibt, die größer als die letzte Zahl der zahlenkette sind, aber auch sich selber!
  1. Letztes Zeichen des Strings ermitteln
  2. String in ein Array von Zeichen auftrennen
  3. Mit Schleife über dieses Array laufen und pro Iteration die Zeichen vergleichen (wenn aktuelles Zeichen >= letztesZeichen)
Dann würde ich gerne wissen, wie man die Formel umformt, damit nur die letzte zahl zusammengerechnet wird (...)

Das Zusammenrechnen von Zeichen hast du ja bereits in vorherigen Fragen beantwortet bekommen. Und für dieses Beispiel musst du doch lediglich das letzte Zeichen ermitteln und für den Vergleich einsetzen.

  1. Counter definieren
  2. String in Array von Zeichen auftrennen
  3. Mit Schleife über dieses Array laufen und Counter um 1 erhöhen, wenn das aktuelle Zeichen gleich dem letzten Zeichen ist. Wenn nicht, Counter ausgeben und auf 0 setzen. Nach der Schleife wird wohl nochmal eine Ausgabe des Counters notwendig sein, sofern er größer 0 ist.
Dann würde ich gerne wissen wie man es so baut, das die letzte zahl zusammen gezählt wird und alles was drüber ist (...)

Statt mit einem Zeichen auf Gleichheit zu prüfen, setzt du >= ein.

Zudem würde ich gerne noch wissen wie man nicht die letzte Zahl sondern die erste oder zb 5 zahl nimmt und mit der einen abgleich tätigt.

https://docs.oracle.com/javase/9/docs/api/java/lang/String.html#charAt-int-

Wie man vergleicht, muss ich, denke ich, nicht erklären.

und ich würde gerne noch wissen wie man anstatt mit der Letzten zahl, das ganze durchsucht mit der letzten zahl +3 oder -2 oder ähnliches!

Du meinst, du möchtest das letzte Zeichen nehmen, dieses mit irgendeiner beliebigen Zahl addieren und dann wieder die Zeichen zählen?

Zum einen solltest du darauf achten, dass das Ergebnis einstellig bleibt. Das ist ja ein einfacher mathematischer Vergleich.

Ansonsten - letztes Zeichen holen, mit '0' addieren und fertig.

Beispiel:

char a = 7 + '0';
char b = (char)(a + 2);
System.out.println(b); // '9'

Wenn du beginnst, mit zweistelligen Zahlen zu arbeiten, musst du diese wirklich in Zahlen konvertieren und beim Zählen sowieso anders vorgehen.

8721833211314=87(21)8(3321131)4 = 8784

Wieso soll hier die 7 ausgegegeben werden. Diese ist ja kleiner als die vorherige Zahl (8)? Oder versteh ich etwas nicht?

13

Die letzte Zahl einer Zahlenkette steht dafür was ausgegeben weden soll. In dem fall die 4, also alles was über 4 ist und die 4 selber

8721833211314=87(21)8(3321131)->4<-

1

Terme mit klammern kann mir einer weiterhelfen?

Die Klammer soll man dann noch durch ÷ 2Z^a rechnen. Aber ich würde einfach nur gerne wissen wie ich die Klammer auflöse und das alles zsm fasse

...zur Frage

Warum geht dieses programm nicht?

    package Package;
    import java.io.*;

    public class ThefirstClass 
{

    public static void main(String[] args) throws IOException
{
    int zahl = 6;
    
    System.out.println("Nenne mir eine Zahl zwischen 1 und 10");
    
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    
    String zahl = input.readLine();
     
    if(zahl == 6)
{
    System.out.println("Richtige Zahl");
}
    else 
{   
    System.out.println("Falsche Zahl");
}

}
}

//Warum geht das Programm nicht?

Mein Terminal bei Linux sagt das ein Error vorliegt bei "String zahl = input.readLine();"

Der Fehler soll die variable zahl sein

...zur Frage

Klammern auflösen mit Minusklammer und potenz- was zuerst?

Aufgabe: -(1/2e-f)² , ist ja dir 2.binomische Formel. Ohne das minus vor der klammer wäre das ja ganz einfach.. aber was rechnet man hier zuerst?

...zur Frage

Oxidationszahl, Klammern?

Hallo Comminity, Im Grossen und Ganzen verstehe ich ja, wie man die Oxidationszahl berechnet. Jetzt haben wir die Formel (PbCl6)-2. Ich verstehe nicht, ob die man die Klammer einfach weglassen kann und wieso die überhaupt da ist. Danke im Voraus!

...zur Frage

Java Zufallszahlen Programm (for Schleife)?

Ich brauche Hilfe bei einem Programm. In diesem Programm geht es darum, dass der Computer sich eine Zahl zwischen 1 und 100 ausdenkt, welche der Nutzer dann erraten soll. Je nachdem ob die Zahl größer oder kleiner ist wird es dann ausgegeben. Man hat 10 Versuche, doch wenn ich die Zahl in z.B. 5 Versuchen erraten habe fragt mich das Programm trotzdem noch weiter nach der Zahl, so lang bis die 10 Versuche verbraucht sind. Und wie kann ich es schaffen, dass wenn die Zahl nicht erraten wird, dass das Programm sie dann am Ende ausgibt ? das ist das Programm bis jetzt:

//----------------------------------------------Variablendeklaration------------------------------------------ String Eingabe1; int Zahl; int Eingabe;

    Random rand=new Random();
    Zahl= rand.nextInt(100);
    

//-------------------------------------------------Schleife--------------------------------------------------------

    for (int Zähler=0; Zähler<10; Zähler=Zähler+1)
    {
        Eingabe1=JOptionPane.showInputDialog(null, "Geben sie ihre ausgedachte Zahl ein");
        
        Eingabe=Integer.parseInt(Eingabe1);
        

//-------------------------------------------------if-Anweisung-------------------------------------------------- if (Eingabe<Zahl) { JOptionPane.showMessageDialog(null, "Die Zahl ist größer.");}

        else if (Eingabe>Zahl)
        {JOptionPane.showMessageDialog(null, "Die Zahl ist kleiner.");}
        
        else 
        {JOptionPane.showMessageDialog(null,  "Die Zahl ist richtig.");}
        
...zur Frage

excel - Zahlen in Klammer setzten

Hallo hallo,

ich möchte gerne aus zwei spalten ein eine neue machen.

In der ersten Spalte stehen der Namen in der zweite Spalte stehlen die Nummern

In der neu erstellten Spalten soll dann die Nummer in Klammer stehen.

Hier ein Beispiel:

XY 3

Ergebnis soll dann sein XY (3)

Bis jetzt hatte ich diese Formel =B4 &" "&C4

Kann mir jemand helfen BITTE die Zahl in klammer zu setzen?

DANKE! :-)

...zur Frage

Was möchtest Du wissen?