Frage

Hallo
Ich versuche, eine rekursive Funktion zu schreiben, die die Länge der Zeichenfolge in Java berechnet
Ich weiß, dass es existiert bereits str.length () Funktion, aber das Problem Aussage will eine rekursive Funktion

implementieren

In der Programmiersprache C die Abschlusszeichen sind ‚\ 0‘, ich will nur wissen, wie wenn Schnurende in Java wissen,

Mein Programm endet gut, wenn ich lege '\ n' in dem Test-String. Lass es mich wissen, bitte. Vielen Dank!

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package careercup.google;

/**
 *
 * @author learner
 */
public class Strlen {
    private static final String Test = "abcdefg\n";
    private static int i =0;

    public static void main(String args[]){
        System.out.println("len : " + strlen(Test));
    }

    private static int strlen(String str){
        if(str == null){
            return 0;
        }
        if(str.charAt(i) == '\n'){
            return 0;
        }
        i += 1;
        return 1 + strlen(str);
    }
}

Ausgabe:

run:
len : 7
BUILD SUCCESSFUL (total time: 0 seconds)
War es hilfreich?

Lösung

Beachten Sie bitte, dass dieser Code sehr ineffizient ist, aber es berechnet Länge eines String in rekursiven Art und Weise.

private static int stringLength(String string){
        if(string == null){
            return 0;
        }

        if(string.isEmpty()){
            return 0;
        }

        return 1 + stringLength(string.substring(1));
    }

Andere Tipps

Java-Strings sind nicht C-Strings. Die Schnurende nach der Anzahl der Zeichen in seiner Länge.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top