# String bearbeiten



## regtan (21. Jul 2016)

Hallo ich versuch ein string z.b. ("abcd") zu bearbeiten und sollte nach der Implementierung eine Methode so aussehen ("abbcccdddd"). Ich hab versucht irgendwie mit string.charAt () aber irgendwie schaff ich nicht von ein char in string zu addieren. Was würdet ihr mir empfehlen?


----------



## VfL_Freak (21. Jul 2016)

regtan hat gesagt.:


> Was würdet ihr mir empfehlen?


Deinen Code zu posten....
oder sollen wir raten ???
gruß Klaus


----------



## regtan (21. Jul 2016)

```
boolean wort(String s) {
   if (s !=null) {
     for (int i = 0; i < s.length(); i++) {
       char b = s.charAt(i);
       s  += (b * i);
       s= s.toString();
     }
   }
   return false;
}
```


----------



## kiwara (21. Jul 2016)

Autsch.
Also warum das nicht klappen kann:

b ist ein char. (b * i) ist immer noch ein char und nicht wie du dir erhoffst derselbe char i-Mal. Wenn du vor allem einen String mit dem Operator += benutzt, hängst du die Zeichenkette an den Schluss, was aber letztendlich zu einer Endlosschleife führt.
Weiters ist s.toString() genau daselbe wie s.

Ich empfehle auf jeden Fall nicht den übergebenen String zu verwenden, sondern einen neuen leeren zu verwenden.


----------



## regtan (21. Jul 2016)

Aber wie könnte ich (b*i) richtig einsetzen?

```
String a = "";
     if (s !=null) {
       for (int i = 0; i < s.length(); i++) {
         char b = s.charAt(i);
         a  = a + b;
       }return true;

     }return false;
```


----------



## kiwara (21. Jul 2016)

Da muss man eine weitere Schleife machen.


----------



## regtan (21. Jul 2016)

Ich hab es so versucht :

```
boolean wort(String s) {
     String a = "";
     if (s !=null) {
       for (int i = 0; i < s.length(); i++) {    
         char b = s.charAt(i);
         int r = s.indexOf(i);          
         for (int j = 0; j < r; j++) {
           a  = a + b;
         } 
       }return true;
     }return false;
```
aber beim Probe irgendwas passt nicht. Kommt true wenn es false sein sollte.


----------



## kiwara (21. Jul 2016)

also in der inneren Schleife kannst du schon ruhig a+=b machen, ich meinte das mit der Endlosschleife nur im speziellen oberen Fall 

Was war dein Input?


----------



## regtan (21. Jul 2016)

Oh ne ich hab die Aufgabe falsch verstanden. Ich Soll nur den String s überprüfen ob es in dem form ("abbcccdddd") ist oder nicht.


----------



## regtan (21. Jul 2016)

Ich versuch die Aufgabe zu lösen aber trotzdem geht nicht. Wo könnte der Fehler sein?

```
for (int i = 1; i < s.length(); i++) {    
         for (int j = 1; j < i ; j++) {
           char a = s.charAt(i);
           char b = s.charAt(i+1);
       
           if (a  != b) {
             return false;
           }
         }
     }return true;
```
ich glaube die zweite schleife ist nicht in ordnung aber was konnte ich andern? Kann man ungleischheit != bei char uberhaupt benutzen?


----------

