/ / java - Encontre Permutação de String, removendo cada caractere - java, string, java.util.scanner, permutação, palavra

java - Localizar Permutação de String, removendo cada caractere - java, string, java.util.scanner, permutação, word

Para exercitar meu java, estou tentando encontrar as Permutações de uma string inserida, mas também removo o caractere a cada vez.

Por exemplo, se o usuário digitar "olá", o programa encontrará todas as permutações da string, mas também removerá "h" e observará a palavra "ello" e assim por diante.

Eu descobri a permutação, mas não consegui remover os caracteres

alguém pode fornecer alguma ajuda?

Respostas:

1 para resposta № 1

Tente implementar este método que remove umcaractere específico em um índice específico. É uma boa prática fazer exercícios de aquecimento antes da codificação séria. www.CodingBat.com/java é um bom lugar para praticar.

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 para resposta № 2

Amostra para remover o primeiro caractere:

        String newStr = oldStr.substring(1);

0 para resposta № 3

Além do método de substring jámencionado, você também pode converter a string em uma matriz de caracteres usando o método String classes toCharArray () e extrair as substrings usando o método copyValueOf ().

Dessa forma, em vez de criar uma nova string toda vez que você remover uma letra, você pode fazer com que o método de permutação funcione em um intervalo da matriz de caracteres.

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 para resposta № 4

Use java "s substring (int beginIndex) método em objetos String

String x = "Hello";

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

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