StringBuffer und substring zerlegen eines Strings



  • Hi,

    StringBuffer SB = new StringBuffer("10+20+30");´
    
         for(int i=0;i<SB.length();i++)
         {
           String temp = SB.substring(i,i+1).toString();
           if(temp.equals("+"))
           {
             String temp1 = SB.substring(0,i);
             SB.delete(0,i+1);
             System.out.println(""+temp1);
           }
         }
    

    Ich versuche die Zeichenkette die in dem StringBuffer steht für spätere Berechnungen zu zerlegen das heißt er soll die Zahl herausschneiden und ausgeben und am besten das Rechenzeichen was zwischen den Zahelen steht löschen.

    In der Ausgabe soll nur stehen:

    10
    20
    30

    Aber irgendwie klappt das ganze nicht irgendwas wichtiges muss ich uebersehen haben. 😕 😕

    [ Dieser Beitrag wurde am 02.07.2003 um 16:23 Uhr von 0x0000F editiert. ]



  • Ich schlage dir die StringTokenizerklasse des Pakets java.util vor:

    String str = "10+20+30";
    StringTokenizer tnr = new StringTokenizer(str, "+");
    System.out.println(tnr.nextToken()+"\n"+tnr.nextToken()+"\n"+tnr.nextToken());



  • guter Vorschlag 🙂



  • Jo cool StringTokenizer ist ja schonmal cool das kannte ich noch gar nicht 🙂 Gibt es den auch eine Möglichkeit die Zeichen also "+" zu speichern oder auszugeben ? 🙂



  • Habs schon gefunden:

    StringTokenizer tnr = new StringTokenizer(SB.toString(),"+*-/",true);



  • Bemerkung am Rande:
    Variablennamen sollten immer mit einem Kleinbuchstaben beginnen, damit man sie leichter von Klassennamen unterscheiden kann.



  • oder regex nehmen:

    import java.util.regex.*;
    
        public class BasicReplace {
            public static void main(String[] args) {
                CharSequence inputStr = "10+20+30";
                String patternStr = "+";
                String replacementStr = " ";
    
                Pattern pattern = Pattern.compile(patternStr);
    
                Matcher matcher = pattern.matcher(inputStr);
                String output = matcher.replaceAll(replacementStr);
                // 10 20 30
            }
        }
    


  • Ähh, wäre das nicht so "etwas" einfacher?

    String str = new String("10+20+30");
    String out = str.replace('+', ' ');


Anmelden zum Antworten