Question

Salut
Je suis en train d'écrire une fonction récursive qui calcule la longueur de la chaîne en Java
Je sais qu'il existe déjà fonction str.length (), mais l'énoncé du problème veut mettre en œuvre une fonction récursive

Dans le langage de programmation C le caractère de terminaison est « \ 0 », je veux juste savoir comment savoir si les extrémités de chaîne en Java

Mes programme se termine bien quand je mets « \ n » dans la chaîne de test. S'il vous plaît, faites-moi savoir. Merci!

/*
 * 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);
    }
}

Sortie:

run:
len : 7
BUILD SUCCESSFUL (total time: 0 seconds)
Était-ce utile?

La solution

S'il vous plaît garder à l'esprit que ce code est très inefficace, mais il calcule longueur d'une chaîne de manière récursive.

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

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

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

Autres conseils

chaînes Java ne sont pas des chaînes C. Les extrémités de la chaîne après le nombre de caractères dans sa longueur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top