Olá !
Eu tava tendo um probleminha com uma verificação de uma string…
Dei uma pesquisada e não achei muito… gostaria se tem como eu saber se minha string A é igual a string B e retornar se é verdadeiro ou falso.
Por Exemplo
String a = TESTE
String b = XYZ
Acho que vai dar pra entender hah
private static String verificador(String txt01)
{
StringBuffer re = new StringBuffer(txt01);
re.reverse();
System.out.println(re);
if (re == txt01)
{
return true;
}
else
{
return false;
}
}
o código ta assim pro enquanto, muito obrigado desde já, tenho toda certeza que essa parte esta completamente errada, mas não da nada. sou novo nessa locura.
vlw
Pra comparar se 2 Strings, ou qualquer objeto na verdade, são considerados iguais, utilize o método equals[code]String str1 = “ABCD”;
String str2 = “DCBA”;
String str3 = “ABCD”;
System.out.println(str1.equals(str2)); // Imprime ‘false’
System.out.println(str2.equals(str3)); // Imprime ‘false’
System.out.println(str1.equals(str3)); // Imprime ‘true’[/code]Se você comparar utilizando o perador == está comparando a variável de referência. Que só retornará true se as 2 Strings literalmente apontarem para o mesmo endereço de memória, não basta terem o mesmo conteúdo.[code]String str1 = “ABCD”;
String str2 = “ABCD”;
String str3 = str1;
System.out.println(str1 == str2); // Imprime ‘false’
System.out.println(str2 == str3); // Imprime ‘false’
System.out.println(str1 == str3); // Imprime ‘true’[/code]
Opa Cara, Então, você me ajudou muito com o equals… eu consegui fazer o que eu queria… mas acho que tem alguma coisa errada que não ta dando certo… ele não só ta retornando o valor false…
ta assim : [code]import java.util.Scanner;
public class exercicio6
{
public static void main (String[] args)
{
String txt01;
Scanner sc;
sc = new Scanner(System.in);
System.out.println("VERIFICACAO DE PALINDROMO!");
System.out.println("Informe a palavra");
txt01 = sc.nextLine();
verificador(txt01);
System.out.println(verificador(txt01));
}
private static boolean verificador(String txt01)
{
StringBuffer inverso = new StringBuffer(txt01);
inverso.reverse();
return txt01.equals(inverso);
}
}[/code]
Deve ser coisa boba, mas não consigo descobrir pq D:
Foi mal pela burrice. UHASD
Que palavra você está enviando para ele ?
por exemplo, se eu enviar
arara , era pra me retornar um true né ?
qualquer palavra que digitar vai retornar false… D:
Ah, você está comparando uma String com um StringBuffer por isso o problema.
Teria que ser algo assim: private static boolean verificador(String txt01) {
StringBuffer inverso = new StringBuffer(txt01);
inverso.reverse();
return txt01.equals(inverso.toString()); // Adicionei uma chamada a toString() aqui
}
Funciono.
Muito obrigado, me ajudou muito.
Desculpa a ignorância, sou novato ainda. hah
VLww
[quote=Tuka Guimaraes]Funciono.
Muito obrigado, me ajudou muito.
Desculpa a ignorância, sou novato ainda. hah
VLww[/quote]
Sem problemas, é errando que se aprende. O importante é você ter entendido o que aconteceu.
Eu acho que entendi…
Eu tava usando a StringBuffer e comparando ali com uma String,
aí você usou o toString e transformou ela em String e foi.
acho que é isso hah
[quote=Tuka Guimaraes]Eu acho que entendi…
Eu tava usando a StringBuffer e comparando ali com uma String,
aí você usou o toString e transformou ela em String e foi.
acho que é isso hah[/quote]
Isso aí