Methode soll Array von Boolean zurückgeben

kazzam94

Mitglied
Hi,
die Methode unten liefert mir gar nichts zurück, auch keinen Fehler.
Ziel wäre es (mit Beispiel "Anna", 'a') das Ergebnis false, false, false, true zu erhalten.


Java:
/**
 * Wandelt Strings zu Boolean-Arrays um
 */
public class BooleanStringHelper {
    /**
     * Gib an wo bestimmtes Zeichen in Wort vorkommt
     * @param str Das zu untersuchende Wort
     * @param chr Das Zeichen auf welches wir das Wort untersuchen
     * @return ein Boolean-Array: wahr, wenn Zeichen an i-ter Stelle vorkommt, sonst false
     */
    public static boolean[] parse(String str, char chr) {
        boolean[] result = new boolean[str.length()];
        
        for(int i=0; str.length()>i; i++) {
            if(str.charAt(i) == chr) {
                result[i] = true;
            }
            else result[i] = false;
        }
        return result;
    }

    
    public static void main(String[] args) {
        BooleanStringHelper.parse("Ana", 'a');
    }
}
 
Beste Antwort
Das ist der hashcode deines Arrays.
Du kannst die Rückgabe deiner parse Methode einer Variabelen zuweisen
boolean[] result = BooleanStringHelper.parse("asdas", 'a');
Dann kannst du das Array in einer for Schleife durchlaufen, hast du ja schonmal gemacht.
Arrays.toString wäre natürlich auch eine Option.
Woher willst Du wissen, dass die Methode dir nichts zurück gibt? Wenn sie es tut, beachtest Du es ja nicht. Du müsstest in main ja irgendwas mit dem Ergebnis machen - aber derzeit ignorierst Du jede Rückgabe der Methode ...
 
Woher willst Du wissen, dass die Methode dir nichts zurück gibt? Wenn sie es tut, beachtest Du es ja nicht. Du müsstest in main ja irgendwas mit dem Ergebnis machen - aber derzeit ignorierst Du jede Rückgabe der Methode ...
Ich habe es mal mit
Java:
System.out.println(BooleanStringHelper.parse("asdas", 'a'));
probiert.
Es kommt als Ergebnis:
[Z@76ccd017
Warum?
 
Das ist der hashcode deines Arrays.
Du kannst die Rückgabe deiner parse Methode einer Variabelen zuweisen
boolean[] result = BooleanStringHelper.parse("asdas", 'a');
Dann kannst du das Array in einer for Schleife durchlaufen, hast du ja schonmal gemacht.
Arrays.toString wäre natürlich auch eine Option.
 
Beste Antwort
Bzw wie kann ich überprüfen ob Methoden dieser Art funktionieren, also im Allgemeinen?
Im einfachsten Fall: durch Aufrufe und danach Prüfung des Ergebnisses (zur Not einfach ausgeben und dann wird manuell das Ergebnis überprüft).

Später läuft es nicht anders - da hat man (stark vereinfacht ausgedrückt) lauter kleine Mini Programme, die irgendwas in Deinem Code aufrufen gefolgt von einer Überprüfung der Ergebnisses. Da spricht man dann von sogenannten Unit Tests. Das ist aber ein Thema, dem man sich erst widmen sollte, wenn man die Java Basics soweit gemeistert hat.
 

Neue Themen


Zurück
Oben