Olá pessoal,
sou iniciante em java e preciso de uma ajuda para descobrir mais de um caracter igual em uma string.
Ex.: abcad
se trata de uma senha e tem dois ‘a’ nessa string. Nesse caso eu iria imprimir: “Não pode conter dois caracteres iguais”.
Olá pessoal,
sou iniciante em java e preciso de uma ajuda para descobrir mais de um caracter igual em uma string.
Ex.: abcad
se trata de uma senha e tem dois ‘a’ nessa string. Nesse caso eu iria imprimir: “Não pode conter dois caracteres iguais”.
class Main {
public static void main(String[] args) {
String senha = "abcad";
if(letrasRepetidas(senha) == true) {
System.out.println("Não pode conter dois caracteres iguais");
}
else {
System.out.println("Senha válida");
}
}
private static boolean letrasRepetidas(String senha) {
for(int i = 0; i < senha.length() - 1; i++) {
char letra = senha.charAt(i);
for(int j = i+1; j < senha.length(); j++) {
if(letra == senha.charAt(j))
return true;
}
}
return false;
}
}
Obrigado amigo, já resolveu meu problema.
Outra opção se estiver usando Java 8 ou superior seria assim:
public class Main {
public static void main(String... args) {
String senha = "abcad";
if (temLetrasRepetidas(senha)) {
System.out.println("Não pode conter dois caracteres iguais");
} else {
System.out.println("Senha válida");
}
}
public static boolean temLetrasRepetidas(final String checkString) {
return checkString.length() != checkString.chars().distinct().count();
}
}
Achei aqui: https://stackoverflow.com/a/31558375/3334365
Parece que não é a forma mais eficiente, mas eu postei só pra demonstrar uma alternativa.