toCharArray()

Pepp

Mitglied
Hallo Zusammen,

kann mir bitte einer Zeile für Zeile erklären was genau hier passiert?
Es geht um die Normalisierung eines Strings
Java:
        String newString = "";
        char lastChar = 0;
        for (char c : path.toCharArray()) {
            if (c == '\\') {
                if (lastChar == c)
                    continue;
            } else if (c == '/') {
                if (lastChar == c)
                    continue;
            }
            newString += c;
            lastChar = c;
        }
        
        path = newString;
Vielen dank für eure Hilfe :)
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Erst mal bringst du deinen Code bitte, wie es dick und fett in rot über allen Editorfenstern steht in das richtige Format. ;)

Was genau verstehst du denn nicht? Die for Schleife?
Das ist jetzt kein so komplizierter Code. ;)
 
Zuletzt bearbeitet:

njans

Top Contributor
Wenn man die Bedingungen etwas anders schreibt, dann kann man es auch leichter sehen:

Java:
		String newString = "";
		char lastChar = 0;
		for (char c : path.toCharArray())
		{
			if (( c == '\\' || c == '/' ) && lastChar == c)
				continue;
			
			newString += c;
			lastChar = c;
		}

		path = newString;

newString ist einfach nur path bei dem die mehrfach hintereinander geführten Zeichen '/' und '\' gekürzt werden, so dass diese nur jeweils einmal vorkommen.

Beispiel: path = "C:///Test.txt" wird zu "C:/Test.txt"
 

Pepp

Mitglied
Wenn man die Bedingungen etwas anders schreibt, dann kann man es auch leichter sehen:

Java:
		String newString = "";
		char lastChar = 0;
		for (char c : path.toCharArray())
		{
			if (( c == '\\' || c == '/' ) && lastChar == c)
				continue;
			
			newString += c;
			lastChar = c;
		}

		path = newString;

newString ist einfach nur path bei dem die mehrfach hintereinander geführten Zeichen '/' und '\' gekürzt werden, so dass diese nur jeweils einmal vorkommen.

Beispiel: path = "C:///Test.txt" wird zu "C:/Test.txt"

Vielen vielen dank schonmal für die Antwort.

was genau macht char c : path.toCharArray() ?
wieso brauche ich char lastChar = 0
 

njans

Top Contributor
Java:
for (char c : path.toCharArray())
Das ist die erweiterte for-Schleife. Üblicherweise "musst" du ja in der for-schleife einen Startwert, eine Bedingung und eine iteration definieren. Wenn du aber z.B. nur über jedes Element einer Liste oder eines Arrays willst, dann kannst du auch einfach diese verwenden. In jedem schritt wird hier die Variable c vom Typ char mit dem nächsten char aus dem char-array von path belegt. String.toCharArray() gibt eben das unterliegende char-array aus, aus dem der String als Zeichenkette besteht.

Die lastChar Variable wird dann gebraucht, wenn du zum ersten mal auf ein '\' oder '/' stößt. Da wird nämlich lastChar genau das entsprechende Zeichen. Wenn du nun weißt, das lastChar eines der Zeichen ist, dann kannst du es mit dem darauffolgenden vergleichen und feststellen, ob sich das Zeichen wiederholt.
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben