2016-04-25 4 views
0

Dies ist die Version, die ich gerade arbeite, wo die Schleife endet, aber es nicht einfach durch jeden Buchstaben, sondern wiederholt nur die erste Vorkommen des ersten Buchstabens.Wie man diese Verschlüsselungsschleife repariert, um jedes Zeichen anstelle von zuerst wiederholt zu lesen

Zum Beispiel, wenn sourcetext war the ugly und das Passwort war ugly es würde wiederholen 4 (die Position des u) viermal (die Länge hässlich). Wo als was ich es tun möchte, ist die Schleife vier Mal wiederholen (die Länge der hässlichen), aber geben Sie jede Position, nicht nur die erste (statt 4444, ich bekomme 4 5 6 7).

Benutze ich die falsche Art von Schleife, um dies zu erreichen? Ich habe ein paar verschiedene Wege ausprobiert und an dieser Stelle stecke ich fest. Auch wenn die Antwort wirklich offensichtlich ist, bitte verbrenne mich nicht auf dem Scheiterhaufen, ich habe erst seit drei Monaten programmiert und habe es wirklich selbst gemacht.

import java.util.Scanner; 

public static void main(String[] args) { 
    String letter, sourcetext; 
    Scanner sc; 
    int temp; 
    sc = new Scanner(System.in); 

    sourcetext = sc.nextLine(); 
    letter = sc.nextLine(); 

    for (int i= 0; i < letter.length(); i++) { 
    temp = sourcetext.indexOf(letter); 

    System.out.print(temp); 
    } 
} 

Antwort

0

Sie verwenden immer den gleichen Index: indexOf (Buchstabe). Ich Gast, was Sie wollen, ist:

for (int i= 0; i < letter.length(); i++) { 
    temp = sourcetext.indexOf(letter.charAt(i)); 

    System.out.print(temp); 
} 
+0

Vielen Dank für die sich die Zeit, um dies zu betrachten, ist Ihre Lösung gut. Für jeden, der dies liest und nach der gleichen Lösung sucht, funktioniert das mit einer kleinen Anpassung. Ohne ein Leerzeichen hinzuzufügen, funktioniert die Entschlüsselung nicht. – Button

+0

Fügen Sie eine String-Variable wie space = "" hinzu und fügen Sie diese Variable dann zur Ausgabe hinzu, wie diese System.out.print (Leerzeichen + Temp). – Button

Verwandte Themen