tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Fabio Hellmann
  • 1 Beitrag von Fabio Hellmann
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
576
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    unistudent unistudent ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    4
    Hallo,

    ich habe eine Methode, die einen String in einen Stringbuffer mit sb.appand(Wort+"\n") dranhängt. Der Speicher vom Stringbuffer ist vorher festgelegt.

    Nun muss ich eine Methode schreiben, die ein Wort aus dem buffer löscht. Bis hier hin hab ich es noch hinbekommen. Mein Problem ist jetzt, wenn ich das gesuchte Wort lösche dann entsteht genau da eine Leerzeile. Ich habe versucht diese Leerzeile durch eine if abfrage zu löschen/ersetzen.
    Damit löscht er nicht nur die Leerzeile sondern hängt die Wörter zusammen. Beispiel:

    Im Stringbuffer:
    brille
    stift
    mappe

    stift möchte ich jetzt löschen, als ausgabe bekomme ich:
    brille

    mappe

    Wenn ich die Leerzeile lösche/ersetze, als ausgabe bekomme ich:
    brillemappe

    Das ist die abfrage für das Löschen der Leerzeile:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    for(int h=0; h<sb.length(); h++) {
                        
        if(sb.indexOf("\n") == h){
                            
        //sb.deleteCharAt(h);
        //sb.insert(h, " ");
        //sb.replace(h, h, " ");
        //sb.setCharAt(h, ' ');
        //sb.delete(sb.indexOf("\n"), h);
        }break;
    }

    Was mache ich falsch?
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi und Willkommen bei tutorials.de,
    ich würde dir empfehlen für das entfernen von einem String nicht über den StringBuffer sondern über String zu gehen. Das geht viel einfacher und funktioniert auch.
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    StringBuffer str = new StringBuffer();
    str.append("brille").append("\n");
    str.append("stift").append("\n");
    str.append("mapp").append("\n");
     
    String string = str.toString();
    string = string.replace("stift\n", "");
    str = new StringBuffer(string);
     
    System.out.println(str);

    Gruß

    Fabio
    unistudent bedankt sich. 
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    unistudent unistudent ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    4
    Danke für deine Antwort.
    Das Problem ist jetzt dass er alle Wörter(stift) löscht. Er soll nur eins löschen.

    Ich hab das jetzt mich s.replaceFirst gemacht. Aber habe immer noch das problem dass da jetzt immer noch die Leerzeile da ist.
    Geändert von sheel (10.01.12 um 18:14 Uhr) Grund: Doppel
     

  4. #4
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Hallo,

    am besten du postest mal deinen aktuellen Stand in Form von Code.
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  5. #5
    unistudent unistudent ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    4
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    void add(String wort) {
     sb.append(wort+"\n");
    }
     
    void remove(String delete) {
            String s = sb.toString();
            
            for(int z=0; z<sb.length()-1; z++) {
                if(z == s.indexOf(delete)) {
                    s=s.replaceFirst(delete, "");
                    sb = new StringBuffer(s);
                                    break;
                }
            }
        }
     

  6. #6
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Du musst einfach in dieser Zeile das +"\n" ergänzen:
    Code java:
    1
    
    s=s.replaceFirst(delete+"\n", "");
    Dann sollte es auch funktionieren.
    unistudent bedankt sich. 
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. StringBuffer - kleine Minifrage ;-)
    Von nighty86 im Forum Java Grundlagen
    Antworten: 5
    Letzter Beitrag: 18.11.10, 08:28
  2. Leerzeile entfernen
    Von chocox im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 13.09.10, 10:58
  3. Anwendung StringBuffer
    Von _Truck_ im Forum Java
    Antworten: 2
    Letzter Beitrag: 31.07.07, 10:59
  4. StringBuffer an konstruktor übergeben
    Von AndreG im Forum Java
    Antworten: 3
    Letzter Beitrag: 01.03.04, 18:27
  5. Leerzeile entfernen klappt nicht
    Von toboli im Forum PHP
    Antworten: 2
    Letzter Beitrag: 10.02.04, 10:58