String mit Leerzeichen nach jedem Zeichen

Hallo zusammen,

ich habe einen String, welcher immer verschiedenen Text enthält. Der String soll den jeweiligen Text aber Buchstaben für Buchstaben (resp. Zeichen für Zeichen) mit einem Leerzeichen trennen. Beispiel:
MEIN TEXT (String)
M E I N T E X T (Ausgabe)

Ich stehe da gerade etwas auf dem Schlauch, wie ich das in Xojo umsetzen kann.

Viele Grüße

Splitte den Text mit der Split-Funktion in ein Array. Dann ein Loop über das Array:

for currentCharacter = 0 to StringArray.lastIndex
if StringArray(currentCharacter) <> "" then StringArray(currentCharacter) = StringArray(currentCharacter) + ""
next

Und am Schluß backst Du das Array wieder zusammen zu einem String.

Okay, so werde ich es versuchen, vielen Dank.
In einer anderen Entwicklungsumgebung habe ich das wie folgt gelöst (funktioniert allerdings nicht bei Xojo):

	Private strOld As String = Label1.text
	Private strNew As String

	Private i As Int
	For i = 0 To strOld.Length - 1
    strNew = strNew & strOld.CharAt(i)
    If i < strOld.Length - 1 Then
        strNew = strNew & " "
    End If
	Next

In der Xojo-Dokumentation lesen Sie:
Split und FromArray

Sie teilen Ihre Zeichenkette auf und bauen sie mit einem Leerzeichen wieder auf.

Um Unicode-save zu sein, würde ich vorschlagen den Characters Iterator zu verwenden, da beim splitten eventuell enthaltene zusammengesetzte Zeichen (Emojis, Schriftzeichen) fehlerhafte Ausgaben produzieren könnten.

Var eingabe As String = "Hallo Welt 👋🏻"
Var ausgabe As String
Var zeichen() As String

For Each einzelZeichen As String In eingabe.Characters
  zeichen.Add(einzelZeichen)
Next

ausgabe = String.FromArray(zeichen, " ")
1 Like

Das ist perfekt gelöst. Vielen, vielen Dank.