# Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen



## jacka (13. Aug 2011)

Hallo, ich habe mal ein Programm dafür geschrieben nur leider ist es irgendwie sinnlos und ich hab keine Ahnung wie ich ich das verbessern soll. 
Zur Info die Angabe: 
Schreibe eine Methode, die ein char [] übernimmt, außerdem zwei chars
(alt und neu). Durchlaufe jetzt das char [] und überprüfe, ob an der
aktuellen Stelle der Buchstabe alt vorkommt. Wenn ja, dann ersetze ihn
durch neu. Führe das für alle Stellen im Array aus. Gebe das Array
anschließend zurück.


```
public class ArraysAufgabe4 {
	public static char ersetzeCharacter(char alt, char neu, char[] array)
			throws Exception {
		if (array == null) {
			throw new Exception("Array darf nicht null sein.");
		}
		int n = 0;
		for (int i = n; i < array.length; i++) {
			if (array[i] == alt) {
				alt = neu;

			}
		}
		return array[n];

	}

	public static void main(String[] args) {
		try {
			char[] array = { 'a', 'b', 'c', 'd' };
			System.out.println(ersetzeCharacter('b', 'u', array));
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
		try {
			char[] array = {};
			System.out.println(ersetzeCharacter('a', 'b', array));
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}
```


----------



## eRaaaa (13. Aug 2011)

"Gebe das Array anschließend zurück."

Und was tust du ?


----------



## XHelp (13. Aug 2011)

jacka hat gesagt.:


> Wenn ja, dann ersetze *ihn*
> durch neu.
> [java=9] public class ArraysAufgabe4 {
> if (array_ == alt) {
> ...


_

Dann solltest du vlt auch dein *Array* verändern _


----------



## jacka (13. Aug 2011)

eRaaaa hat gesagt.:


> "Gebe das Array anschließend zurück."
> 
> Und was tust du ?



ja eh mit return zurückgeben oder? 
:S


----------



## eRaaaa (13. Aug 2011)

public static char ersetzeCharacter
+
 return array[n];

= du gibst kein char-Array zurück sondern ein einzelnen Character!


----------



## jacka (13. Aug 2011)

eRaaaa hat gesagt.:


> public static char ersetzeCharacter
> +
> return array[n];
> 
> = du gibst kein char-Array zurück sondern ein einzelnen Character!



Und wie geb ich jetzt das Array zurück?


----------



## jacka (13. Aug 2011)

XHelp hat gesagt.:


> Dann solltest du vlt auch dein *Array* verändern



und wie verändern?


----------



## eRaaaa (13. Aug 2011)

```
if (array[i] == alt) {
                alt = neu;
 
            }
        }
        return array[n];
```
->

```
if (array[i] == alt) {
                array[i] = neu;
 
            }
        }
        return array;
```

Vlt. nochmal das Kapitel zu den Arrays lesen!


----------



## jacka (13. Aug 2011)

eRaaaa hat gesagt.:


> ```
> if (array[i] == alt) {
> alt = neu;
> 
> ...



ok aber ich will nicht nur den ersetzten character ausgeben sondern das ganze array mit ersetzen character drinnen.


----------



## eRaaaa (13. Aug 2011)

Schon klar, ich habe dir jetzt aber schon genug Fehler ausgebessert, eig. war das deine Aufgabe.
Wenn deine Methode jetzt ein Array zurück gibt, geht natürlich
 System.out.println(ersetzeCharacter('b', 'u', array));
nicht so einfach. Entweder eben über das Array nun auch wieder iterieren, oder eine passende Methoden suchen 
Ich sagte ja, lies das Kapitel mit den Arrays nochmal! Von mir gibts jetzt jedenfalls kein Code mehr ( keine Eigeninitiative deinerseits)


----------



## njans (13. Aug 2011)

jacka hat gesagt.:


> ok aber ich will nicht nur den ersetzten character ausgeben sondern das ganze array mit ersetzen character drinnen.



Das ist doch genau das, was eRaaaa dir in seiner Verbesserung aufzeigt^^


----------

