Strings - Zeichen vergleichen

Neue Frage »

Auf diesen Beitrag antworten »
Tina_92 Strings - Zeichen vergleichen

Meine Frage:
Hi zusammen,

ich bringe gerade keine Abbruchbedingung für folgende Aufgabe hin:

Given a string, compute recursively (no loops) the number of lowercase 'x' chars in the string.

countX("xxhixx") ? 4
countX("xhixhix") ? 3
countX("hi") ? 0




Meine Ideen:
Mein Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:

package string_rekursiv;

public class String_Rekursiv 
{
    public static void main(String[] args) 
    {
        System.out.println(countX("xxhi"));
    }    

    static int countX (String str)
    {
        char [] array = new char [str.length()];
        array = str.toCharArray();
        
        
        int i=0;
        if (i<array.length)
        {
            return array[i]=='x'?1 + countX(str) :0 + countX(str);
        }
        return 0; 



Wie schaffe ich es denn, dass meine rekursive Funktion nach einer gewissen Anzahl an Durchlaufen abbricht?



Vielen Dank!
 
Auf diesen Beitrag antworten »
eulerscheZahl

Du musst den Index, wo du gerade liest, mit an die Funktion übergeben.

Das str.toCharArray() kannst du dir sparen (braucht unnötig Speicher), str.charAt(index) tut es auch.
Auf diesen Beitrag antworten »
Tina_92

Danke für die Antwort. Aber ich darf doch der Funktion nicht einfach ein Integer hinzufügen?
Auf diesen Beitrag antworten »
eulerscheZahl

Dann ruft eben countX(String) countX(String, 0) auf, wenn du den Kopf nicht ändern darfst.
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »