2016-12-04 7 views
-3

Ich bin ein Anfänger und steckte mit diesem Problem;Tauschen Sie alle Zeichen in einer Zeichenfolge

Der Code soll folgendes tun;

+4

Geben Sie den Code, was Sie bisher versucht haben? – Shriram

+2

Die Zeichenfolge in ein char-Array transformieren. Tauschen Sie die Elemente im Array und transformieren Sie das Array in einen String. der String javadoc ist dein Freund: http://docs.oracle.com/javase/8/docs/api/java/lang/String.html –

Antwort

0

Ich bin immer ein großer Fan von StringBuilder, hier ist meine Lösung:

String word = <get input here>; 
StringBuilder builder = new StringBuilder(word); 
for (int i = 0 ; i + 2 < builder.length() ; i++) { 
    char temp = builder.charAt(i); 
    builder.setCharAt(i, builder.charAt(i + 2)); 
    builder.setCharAt(i + 2, temp); 
    System.out.println(builder); 
} 

Erläuterung:

Wir zunächst die Eingabe in einen String-Builder setzen (Linie 2).

Dann Schleife, bis i + 2 ist größer als oder gleich der Länge der Zeichenfolge (line3). Warum wollen wir i + 2 statt i Sie fragen? Nun, nehmen wir an, eine Zeichenkette hat eine Länge von n, der letzte Austausch, den wir machen, sollte das (n - 2) -te Zeichen mit dem n-ten Zeichen vertauschen. Wir müssen dem (n - 1) ten Charakter nichts tun.

Für Zeile 4 bis 7 ist es ziemlich klar, was der Code tut. Sicherlich wissen Sie, wie die Werte von zwei Variablen vertauschen:

int a = 10; 
int b = 20; 
int temp = a; 
a = b; 
b = temp; 

Es ist hier das gleiche tun, sondern mit einem String-Builder, die setCharAt Methode.

+1

Vorsicht: das OP, sobald er/sie graduierte, indem er alle seine/ihre Hausaufgaben kopierte von hier aus könnte in Ihrem Team von Entwicklern enden. Warum sollte er nicht etwas ausprobieren und lernen, anstatt seine Hausaufgaben zu machen? –

+0

@JBNizet Ich denke, die OP ist hier steckengeblieben, weil sie das Problem nicht in die richtige Richtung angeht. Deshalb habe ich eine Erklärung gegeben. Die Erklärung zeigt, wie ich meine Lösung bekam, wie ich denke, wenn dieses Problem dargestellt wird. Wenn er wirklich die richtige Denkweise der Problemlösung lernen möchte, hätte er fragen können. – Sweeper

1

Sie können zuerst die Zeichenfolge in ein Zeichen von Arrays zerlegen, dann Schleife über das Array das i-Element mit dem (i + 2) ten Element tauschen, bis Sie das 3. bis zum letzten Element erreichen. Beispielcode ist unten gezeigt.

String input = "December"; 
char[] testInput = input.toCharArray(); 
for(int i = 0; i <= input.length() - 3; i++){ 
    char temp = testInput[i]; 
    testInput[i] = testInput[i + 2]; 
    testInput[i + 2] = temp; 
} 
System.out.println(testInput); 
+0

Ihr Schnipsel dreht sich *** Dezember *** bis *** Dezember *** –

+0

@ ΦXocę 웃 Пepeúpa ツ Ist es nicht die richtige Ausgabe? – Sweeper

+0

eins nach dem anderen denke ich .... ist nicht klar für mich in der Frage –

Verwandte Themen