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 № 1Tente 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