/ / java - Recherche de permutation de chaîne en supprimant chaque caractère - java, chaîne de caractères, java.util.scanner, permutation, mot

java - Trouver une permutation de chaîne en supprimant chaque caractère - java, chaîne, java.util.scanner, permutation, mot

Pour exercer mon java, j'essaie de trouver les permutations d'une chaîne entrée, mais aussi de supprimer le caractère à chaque fois.

Par exemple, si l'utilisateur tape "bonjour", le programme trouvera toutes les permutations de la chaîne, mais supprimera également "h" et regardera le mot "ello" et ainsi de suite.

J'ai compris la permutation, mais je n'ai pas pu supprimer les caractères

quelqu'un peut-il m'aider?

Réponses:

1 pour la réponse № 1

Essayez d'implémenter cette méthode qui supprime uncaractère spécifique à un index spécifique. Il est recommandé de faire des exercices d'échauffement avant un codage sérieux. www.CodingBat.com/java est un bon endroit pour pratiquer.

public class StringPractice{
String sample = "sample";

String holder = sample;
if(sample == null)
return "";
else if(index == 0 && sample.length() == 1)
return "";
else if(sample.equalsIgnoreCase(""))
return "";
else if(index == sample.length())
return sample.substring(0, sample.length()-1);
else
return sample.substring(0, index) + holder.substring(index+1, holder.length());
}

0 pour la réponse № 2

Exemple pour supprimer le premier caractère:

        String newStr = oldStr.substring(1);

0 pour la réponse № 3

En plus de la méthode de sous-chaîne déjàmentionné, vous pouvez également convertir la chaîne en un tableau de caractères à l'aide de la méthode String classes toCharArray () et extraire les sous-chaînes à l'aide de la méthode copyValueOf ().

De cette façon, au lieu de créer une nouvelle chaîne chaque fois que vous supprimez une lettre, vous pouvez simplement faire fonctionner la méthode de permutation sur une plage du tableau char.

public class untitled {

public static void main (String args[]) {

String input = "hello";

combAndPerm(input);

}

public static void combAndPerm(String input){

char[] toDo = input.toCharArray();

for(int i = 0; i < toDo.length; i++){
permutation(String.copyValueOf(toDo, i, toDo.length-i));
}
}

public static void permutation(String str) {
permutation("", str);
}

private static void permutation(String prefix, String str) {
int n = str.length();
if (n == 0) System.out.println(prefix);
else {
for (int i = 0; i < n; i++)
permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+1, n));
}
}

}


-1 pour la réponse № 4

Utilisez java "s sous-chaîne (int beginIndex) méthode dans les objets String

String x = "Hello";

System.out.print(x); // Hello

System.out.print(x.substring(1)); //ello