class SucheT { static final String text1 = "PETER PIPER PICKED A PECK"; //0123456789012345678901234567890 static final String text2 = "FISCHERS FRITZ FISCHT FRISCHE FISCHE"; //0123456789012345678901234567890123456789 static final String text3 = "00100111010010100010100111000111"; //0123456789012345678901234567890123456789 static final String muster1 = "PECK"; static final String muster2 = "SCAMPI"; static final String muster3 = "FISCHT"; static final String muster4 = "10100111"; static int bfSuche(String text, String muster){ int mL = muster.length(); int tL = text.length(); int dL = tL - mL; // Delta if ((mL > 0) && (dL >= 0)){ for (int tPos=0; tPos <= dL; tPos++){ int mPos = 0; while((mPos < mL) && (text.charAt(tPos+mPos) == muster.charAt(mPos))) mPos++; if (mPos == mL) return tPos; } } return -1; } static void testSuche(String text, String muster){ int index = bfSuche(text, muster); System.out.println("Text: \""+text+"\""); System.out.println("Muster: \""+muster+"\""); if (index >= 0) System.out.println("Gefunden auf Position: "+index); else System.out.println("Nicht gefunden."); } public static void main(String ... args) { System.out.println("Anfang String Such tester"); testSuche(text1, muster1); testSuche(text2, muster2); testSuche(text2, muster3); testSuche(text3, muster4); System.out.println("Ende String Such tester"); } }