Strings mit der Axt zerteilen

Hi Leute
ich bin nun bei den primitiven Datentypen beim letzten Typ angekommen den Strings(komplexer Datentyp der Primitiven Datentypen); Zu Beginn ich tuh mich noch sehr schwer und sitze seit Anfang der Woche jeden Tag 2 Stunden, um das hinzubekommen...gibt ja genug Vokabeln also gleich vorweg... wer mir Tipps zum eindrichtern geben kann dem würde ich gerne abknutschen:

So nun zum problem

package de.schroedinger100.miguel.java;

import java.io.*;
import java.util.*;

public class schroedinger {

public static void main(String[] args) {

String a= "affe";
String b= "affenarsch";
String gemein = "";

for(int i = a.length()+1-(a.length());i>=0;i++) {
String teil = a.substring(i);
if(b.startsWith(teil)) {
gemein = teil;
}else {
break;
}

}System.out.println(gemein);
}
}
Warum bekomme ich keine Ausgabe: liegt es an gemein= teil; ich ordne den Wert ja nicht zu, aber was mich verlegen macht, wenn ich das neu deklaiere passiert natürlich ein Fehler und jetzt kommts: der Code funktioniert wenn ich Ihn umschreibe aber warum geht das:

package de.schroedinger100.miguel.java;

import java.io.*;
import java.util.*;

public class schroedinger {

public static void main(String[] args) {

String a= "Tischlerei";
String b= "Fischerei";
String gemein = "";

for(int i = a.length()-1;i>=0;i--) {
String teil =a.substring(i);
if(b.endsWith(teil)) {
gemein = teil;
}else {
break;
}
}System.out.println(gemein);
}
}
 
Bitte den Code in Code-Tags einfügen. Dazu die drei Punkte neben dem Smiley anklicken, dort Code wählen, Java als Sprache einstellen und Deinen Code reinkopieren.

Sollte dann etwa so aussehen:
Java:
package de.schroedinger100.miguel.java;

import java.io.*;
import java.util.*;

public class schroedinger {

    public static void main(String[] args) {
        String a= "affe";
        String b= "affenarsch";
        String gemein = "";

        for(int i = a.length()+1-(a.length());i>=0;i++) {
            String teil = a.substring(i);
            if(b.startsWith(teil)) {
                gemein = teil;
            }else {
                break;
            }
        }
        System.out.println(gemein);
    }
}
Warum bekomme ich keine Ausgabe
Naja, Du beginnst Deine for-Schleife mit einem i von a.length()+1-(a.length()), also mit 1. Und dann bleibst Du so lange in der Schleife, so lange i>=0 gilt. Da du nach jeder Iteration das i erhöhst, wird das nie der Fall sein.
 
Ja also zu meiner Verteitigung das mit der Axt ist so in meinen Fachbuch schrödinger programmiert java:

Axt: a.substring(i);
Doppelaxt: a.substring(i,x);
Spalten: a.split(" ");
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben