Zeichen im String löschen?

Status
Nicht offen für weitere Antworten.

Novanic

Bekanntes Mitglied
Hi Leute,

ich möchte ein bestimmtes Zeichen in Strings löschen.
Ich hätte jetzt gedacht:

meinString.replace(meinZeichen, leeresZeichen);

Aber dummerweise gibt es im J2ME-SDK nur die replace-Variante bei der man zwei Chars übergeben kann und ein Char kann ja kein Leerzeichen annehmen oder?

Hat jemand eine Idee wie sich das dennoch einigermaßen komfortabel lösen lässt?

Danke schonmal! :)

Gruß Nova
 

The_S

Top Contributor
Warum sollte ein char kein Leerzeichen annehmen können? Natürlich kann ein char ein Leerzeichen annehmen ...

Code:
char space = ' ';
 

Novanic

Bekanntes Mitglied
Oh da habe ich ein bisschen ungenau formuliert.
Ich meinte ein char ohne Zeichen, also: ''.
Bei der replace-Methode des JDKs würde ich replace("Z", ""); sagen aber da ein char nicht '' (0 bzw. keine Zeichen) annehmen kann, wird dies wohl nicht funktionieren oder gibt es einen Separator/Steuerzeichen um das zu lösen?

Oder welchen komfortablen Weg gibt es noch ein Zeichen aus einen String zu löschen (im J2ME-SDK)?

Gruß Nova
 

The_S

Top Contributor
Hab noch nie mit J2ME gearbeitet, aber klappt das hier?

Code:
str.replace((CharSequence)"Z", (CharSequence)"");
 

Novanic

Bekanntes Mitglied
Nein, leider nicht, im J2ME-SDK gibt es kenie CharSequence. :) Bei der replace-Methode von String kann man nur zwei chars übergeben, sonst nichts.

Gruß Nova
 

Novanic

Bekanntes Mitglied
Ja, ne das geht leider nicht. *g* Da wird ein Compiler-Fehler kommen.

Ich hab mir jetzt mal schnell eine eigene kleine Util-Methode geschrieben.
Den StringBuffer gibt es zum Glück auf im J2ME-SDK. :)

Code:
    public static String replace(String aString, char aReplaceable, String aReplacer)
    {
        StringBuffer theBuffer = new StringBuffer(aString);
        int theReplacePos = -1;
        do
        {
            theReplacePos = aString.indexOf(aReplaceable, theReplacePos + 1);
            if(theReplacePos >= 0)
            {
                theBuffer.deleteCharAt(theReplacePos);
                theBuffer.insert(theReplacePos, aReplacer);
            }
        }while(theReplacePos >= 0);
        return theBuffer.toString();
    }

Trotzdem danke für die Hilfe! :)

Gruß Nova
 
N

Nap am Lap..

Gast
da hab ich auch ne frage zu! gibs nen befehl zum löschen der leerzeichen aus einem string?

ich meine nicht die anfangs oder endleerzeichen
 

Novanic

Bekanntes Mitglied
Wobei das im J2ME-SDK mit replace nicht möglich ist. Deswegen hab ich ja meine Replace-Lösung entwickelt. Die kannst du dafür auch nutzen.

Der Aufruf würde dann so aussehen:

Code:
String theString = "String mit Leerzeichen";

theString = replace(theString, ' ', "");

Gruß Nova
 
N

Nap am Lap

Gast
ups ich bin bei mir von jdk ausgagangen net von j2me.

hmm muß ich mir die methode umschreiben. Danke auf jedenfall
 

Novanic

Bekanntes Mitglied
Na dann bist hier aber im falschem Forum. ;-)

Dann kannst du auch die normale, fertige replace-Methode benutzen:

Code:
String theString = "String mit Leerzeichen";
theString.replace(" ", "");

Gruß Nova
 
G

Gast

Gast
Zum löschen der Leerzeichen kannst du (so weit ich weiß) ".trim verwenden.
Bsp.
String test = test test test test;
test.trim;

test sollte jetzt testtesttesttest sein.
 
S

SlaterB

Gast
alten Thread ausgraben und dann auch noch irgendwelche Unwahrheiten schreiben?

5 Stunden stellt das niemand richtig?
na kann ja jeder selber testen, nicht so gefährlich,
warum hast du als Gast es aber nicht getesten? ;)

also trim() entfernt nur Leerzeichen am Anfang und Ende des Strings, nicht alle auch in der Mitte

zumal es
String test = "test test test test";
und vor allem
test = test.trim();
heißen müsste
 

Kidao

Mitglied
Novanic hat gesagt.:
Ja, ne das geht leider nicht. *g* Da wird ein Compiler-Fehler kommen.

Ich hab mir jetzt mal schnell eine eigene kleine Util-Methode geschrieben.
Den StringBuffer gibt es zum Glück auf im J2ME-SDK. :)

Code:
    public static String replace(String aString, char aReplaceable, String aReplacer)
    {
        StringBuffer theBuffer = new StringBuffer(aString);
        int theReplacePos = -1;
        do
        {
            theReplacePos = aString.indexOf(aReplaceable, theReplacePos + 1);
            if(theReplacePos >= 0)
            {
                theBuffer.deleteCharAt(theReplacePos);
                theBuffer.insert(theReplacePos, aReplacer);
            }
        }while(theReplacePos >= 0);
        return theBuffer.toString();
    }


Hallo!

Keine Schlechte Methode, hat mir geholfen, nur leider ist die so nicht ganz richtig...würde mich wundern, wenn du sie so verwenden könntest. Das Problem bei dir ist, dass er die Leerzeichenposition aus dem Original-String holt und diese Position auf die gebufferte Zeichenkette überträgt und genau hier kommt es zum Problem, denn wenn die Methode die erste Leerstelle gelöscht hat, befindet sich das nächste Leerzeichen nicht an der selben Position wie im Original-String.

Bsp:

"1 2 3" (Positionen "01234")
1. Durchlauf:
Leerzeichen aus dem Orig.-String an der Position 1 erkannt,
Leezeichen gelöscht
theBuffer = "12 3" (Leerzeichen an der Position 2)

2. Durchlauf
Leerzeichen aus dem Original-String an der Position 3 erkannt
Position 3 ist aber im theBuffer ist "3" also wir "3" und nicht das Leerzeichen gelöscht.



Das Problem kann man aber ganz einfach lösen, indem man den String, in dem nach dem Leerzeichen gesucht wird, mit "aString = theBuffer.toString();" aktualisiert.
Code:
    public static String replace(String aString, char aReplaceable, String aReplacer)
    {
        StringBuffer theBuffer = new StringBuffer(aString);
        int theReplacePos = -1;
        do
        {
            aString = theBuffer.toString();      // String aktualisieren
            theReplacePos = aString.indexOf(aReplaceable, theReplacePos + 1);
            if(theReplacePos >= 0)
            {
                theBuffer.deleteCharAt(theReplacePos);
                theBuffer.insert(theReplacePos, aReplacer);
            }
        }while(theReplacePos >= 0);
        return theBuffer.toString();
    }

MfG
Kidao
 
G

Guest

Gast
Gast hat gesagt.:
Zum löschen der Leerzeichen kannst du (so weit ich weiß) ".trim verwenden.
Bsp.
String test = test test test test;
test.trim;

test sollte jetzt testtesttesttest sein.

ich glaube die Methode trim nimmt nur die leerzeichen vom Anfang und Ende des Strings

also wenn es heisst: " hallo ".trim() dann kommt raus "hallo"
gruß
 

Backwardsman

Bekanntes Mitglied
es kann ja wohl nicht so schwer sein, eine methode zu schreiben die einen string nach einem zeichen durchsucht und es entfernt... das hat ja nicht mal was mit j2me zu tun. ich glaube das lesen dieses threads dauert länger, als so ne methode zu basteln :-D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S ein String nach vorgegebenen Zeichen teilen Android & Cross-Platform Mobile Apps 3
F Mit Canvas zeichen und durch einen Timer aktualiesieren Android & Cross-Platform Mobile Apps 1
S Android Textboxen bestimmt zeichen erlauben? Android & Cross-Platform Mobile Apps 5
R Zeichen-Codierung in (SMS) TextMessage, "_" wird § Android & Cross-Platform Mobile Apps 2
U ermitteln wieviele zeichen auf das aktuelle display passen Android & Cross-Platform Mobile Apps 2
W UTF-8 String Android & Cross-Platform Mobile Apps 66
W Base64 konvertierter URI String Android & Cross-Platform Mobile Apps 32
W String Array Pfad in Int setzen Android & Cross-Platform Mobile Apps 54
W Volley String Response gibt falchen if aus Android & Cross-Platform Mobile Apps 35
H Anfänger String types not allowed (at 'textColor' with value 'black' Android & Cross-Platform Mobile Apps 13
W Firestore String in Apps Laden Android & Cross-Platform Mobile Apps 10
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
C Zugriff auf die Position eines String- bzw Spinner-Arrays Android & Cross-Platform Mobile Apps 1
J Android String in andere Java-Dateien überführen Android & Cross-Platform Mobile Apps 1
J R.string.(variable) geht das Android & Cross-Platform Mobile Apps 3
R Android incomingNumber bein Eingehenden Anruf immer leerer String Android & Cross-Platform Mobile Apps 4
S SPLIT funktion bei STRING funktioniert nicht! Android & Cross-Platform Mobile Apps 4
G String an einen php Script senden Android & Cross-Platform Mobile Apps 8
J Plötzlich "java.lang.String cannot be converted to JSONObject" Android & Cross-Platform Mobile Apps 9
T int to string ... Android & Cross-Platform Mobile Apps 8
A String[] für Lisadapter Android & Cross-Platform Mobile Apps 4
M jsonobject cannot be cast to java.lang.string Android & Cross-Platform Mobile Apps 4
N Android Hilfe string to float geht nicht... Android & Cross-Platform Mobile Apps 4
J Einen String bewegen wie? Android & Cross-Platform Mobile Apps 3
R String wie WAV Datei nutzen Android & Cross-Platform Mobile Apps 4
C 2 kleine Probleme (Datei lesen, String durchsuchen) Android & Cross-Platform Mobile Apps 16
L String dem Display anpassen Android & Cross-Platform Mobile Apps 12
G Text parsen String to Double Android & Cross-Platform Mobile Apps 2
M MIDlet + Datum in String Android & Cross-Platform Mobile Apps 5
L Android ListView swipe zum löschen Android & Cross-Platform Mobile Apps 1
K Löschen einer Tabelle bei PlayStore update Android & Cross-Platform Mobile Apps 2
N Android Display nicht löschen bzw. neu laden Android & Cross-Platform Mobile Apps 2
K Nullpointer beim Löschen von Datenbankeintrag, je nachdem wo der Befehl steht Android & Cross-Platform Mobile Apps 5
A Android Eine Datei in Android löschen, aber wie ? Android & Cross-Platform Mobile Apps 24
A Leichen löschen Android & Cross-Platform Mobile Apps 6

Ähnliche Java Themen

Neue Themen


Oben