[RESOLVIDO] String Boolean

9 respostas
T

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

9 Respostas

Rodrigo_Sasaki
Pra comparar se 2 Strings, ou qualquer objeto na verdade, são considerados iguais, utilize o método equals
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'
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.
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'
T

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 :
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);
					
			}
			
			
	}

Deve ser coisa boba, mas não consigo descobrir pq D:
Foi mal pela burrice. UHASD

Rodrigo_Sasaki

Que palavra você está enviando para ele ?

T

por exemplo, se eu enviar
arara , era pra me retornar um true né ?
qualquer palavra que digitar vai retornar false… D:

Rodrigo_Sasaki

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 }

T

Funciono.
Muito obrigado, me ajudou muito.
Desculpa a ignorância, sou novato ainda. hah

VLww

Rodrigo_Sasaki

Tuka Guimaraes:
Funciono.
Muito obrigado, me ajudou muito.
Desculpa a ignorância, sou novato ainda. hah

VLww


Sem problemas, é errando que se aprende. O importante é você ter entendido o que aconteceu.

T

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

Rodrigo_Sasaki

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


Isso aí :slight_smile:

Criado 24 de maio de 2013
Ultima resposta 24 de mai. de 2013
Respostas 9
Participantes 2