Galera, poderiam me dizer como comparar através de um método do pacote
java.lang
as 2 últimas letras de 2 Strings??? Já encontrei o método equalsIgnoreCase, utilizeo também o método chatAt, mas daí eu só localizo a última letra, não sei como localizar as 2 últimas para comparar. Obrigado desde já!!!
E o sistema me retornou erros…Entre eles, o sistema informa não conhecer os métodos charAt e equalsIgnoreCase. Será que é porque utilizo java versão 1.4.2 ???
L
luBSPJ
Esses métodos existem nessa versão… o problema é que vc declarou a classe com o nome String, então a String que ele esta considerando no seu programa é a sua classe e não a classe do J2SE, e como sua classe não tem esses métodos, da erro… mude o nome da sua classe que o treco compila.
Ou então implemente assim:
Beleza cara, deu certo!!! Muito obrigado pela ajuda… Abraços
T
thundercasPJ
Galera, surgiu uma dúvida…
Eu não entendi porque utilizo uma CHAR para guardar o valor a ser comparado e depois faço novamente a comparação entre as 2 Strings. Alguém pode me explicar?? Na verdade, não entendi a lógica dos métodos charAt + equalsIgnoreCase
Obrigado!!
T
thundercasPJ
Galera, surgiu uma dúvida…
Eu não entendi porque utilizo uma CHAR para guardar o valor a ser comparado e depois faço novamente a comparação entre as 2 Strings. Alguém pode me explicar?? Na verdade, não entendi a lógica dos métodos charAt + equalsIgnoreCase
Obrigado!!
L
luBSPJ
“thundercas”:
Galera, surgiu uma dúvida…
Eu não entendi porque utilizo uma CHAR para guardar o valor a ser comparado e depois faço novamente a comparação entre as 2 Strings. Alguém pode me explicar?? Na verdade, não entendi a lógica dos métodos charAt + equalsIgnoreCase
cria uma string com “Hello” referenciado pela variavel str1
grava na variavel char x o primeiro caracter da string str1 (ou seja ‘H’)
cria uma string com “hello” referenciado pela variavel str2
compara str1 com str2 utilizando equalsIgnoreCase, ou seja, verifica se a str1 é igual a str2 sem considerar maiusculas e minusculas.
o char x vc nem usa, nesse código ai é dispensavel…
Para resolver la o seu problema inicial:
Obtendo as duas ultimas letras com charAt:
Stringstr1="Hello";Stringstr2="hello";Stringultimas2Str1=""+str1.charAt(str1.length()-2)+str1.charAt(str1.length()-1);Stringultimas2Str2=""+str1.charAt(str2.length()-2)+str1.charAt(str2.length()-1);booleaniguais=ultimas2Str1.equalsIgnoreCase(ultimas2Str2);System.out.println("As duas ultimas letras de "+str1+" ("+ultimas2Str1+") comparado com as duas ultimas letras de "+str2+" ("+ultimas2Str2+") são iguais? - "+iguais);
Obtendo as duas ultimas letras com substring:
Stringstr1="Hello";Stringstr2="hello";Stringultimas2Str1=str1.substring(str1.length()-2);Stringultimas2Str2=str1.substring(str2.length()-2);booleaniguais=ultimas2Str1.equalsIgnoreCase(ultimas2Str2);System.out.println("As duas ultimas letras de "+str1+" ("+ultimas2Str1+") comparado com as duas ultimas letras de "+str2+" ("+ultimas2Str2+") são iguais? - "+iguais);
bele?!
T
thundercasPJ
Ahh… beleza cara. Agora sim eu entendi. Eu copiei esse código de uma apostila, e realmente não entendi pra que era guardado o valor dentro de uma char.
Beleza pura, muito obrigado pela ajuda!!! Abraços para todos
Se eu não colocar “” no início ocorre erro de tipos incompatíveis???
Obrigado novamente
L
luBSPJ
é porque a soma de dois caracteres character da um int. É colocado “” na frente para forçar ele somar o valor String. Ele começa somando uma string vazia ao caracter, que entao resulta em outra string e depois essa outra string é somada ao outro caracter resultando em outra string.
Perceba que no primeiro e terceiro System.out.println a saida é 212. O primeiro ocorreu aquela soma: char + char = int, logo imprimiu um valor inteiro. O segundo eu primeiro criei a string “”, depois somei a ela um char que resultou em outra string e depois somei essa outra string a outro char, resultando em uma string. O terceiro primeiro (que é parecido com o segundo mas a posição do “” é diferente) somei os chars (que resulta em int) e depois esse int somei a string, logo imprimiu um valor String do valor inteiro da soma dos chars.
É só entender como funciona os operadores e a ordem como são executados.
bele!?
T
thundercasPJ
Entendi… esse conceito eu realmente não tinha… Valeu cara, muito obrigado pela ajuda.