Ahn, de preferência usa-se o LENGTH() e CHARAT() …
Métodos como INDEXOF() não podem ser usados
paulorb.pacheco
publicclassTeste{/** Creates a new instance of Teste */publicTeste(){Stringtexto="O gato morreu apos o gato branco morrer apos o gato preto morrer";Stringpalavra="gato";intindice=48;if(acha(texto,palavra,indice)){System.out.println("Achou");}else{System.out.println("Não achou");}}privatebooleanacha(Stringtexto,Stringpalavra,intinicio){intindexPalavra=0;StringpalavraTemp="";if(inicio<texto.length()){for(inti=inicio;i<texto.length();i++){if(indexPalavra<palavra.length()){if(texto.charAt(i)==palavra.charAt(indexPalavra)){palavraTemp=palavraTemp+texto.charAt(i);}indexPalavra++;}else{i=texto.length();}}}if(palavra.equals(palavraTemp)){returntrue;}returnfalse;}publicstaticvoidmain(Stringargs[]){newTeste();}}
Notei que isso parece exercicio de uma faculdade ou mesmo de um cursinho, e estou ajudando pq vc disse que está a tres dias nisso…
É ideial que vc estude e não copie códigos da internet… ok???
Até parece professor falando…
Abs
Flw…
R
Rafa_opa
Kara como vc conseguiu?!?!?!?!?! :shock:
Mas eh um pouco diferente:
Eh o seguinte, o usuário é que tem que enviar o texto e a palavra, e assim, o programa localiza a posição.
O texto do ‘dia’ foi só um exemplo…
Serve para comparar objetos, em Java uma variável do tipo String é um objeto.
AGORA…
Sugiro se vc estude alguns algoritmos de reconhecimento de padrões como:
Rabin_karp, KMP, Boyer-Moore, são algoritmos tradicionais aplicados.
Um boa referência é o Handbook of Exact String-Matching o qual anexo neste post a título de referência
R
Rafa_opa
jwcunha:
Serve para comparar objetos, em Java uma variável do tipo String é um objeto.
AGORA…
Sugiro se vc estude alguns algoritmos de reconhecimento de padrões como:
Rabin_karp, KMP, Boyer-Moore, são algoritmos tradicionais aplicados.
…
VLW mt bom o livro kara, vou ler com paciencia, o problema eh que eu não posso usar isso… Os dois métodos predefinidos que podem ser usados são LENGTH e CHARAT, só…
O Paulo acima fez certo, só que não deixou a opção para o texto ser carregado pelo usuário e usou o EQUALS (não posso usá-lo)…
:roll:
FMZ? msm assim valeu e se vc conseguir coloque aqui pra mim! vlw teh mais
cassio
Ao invés do equals, já que é só para comparar String, faça um método auxiliar que recebe duas Strings e retorne um boolean
mais ou menos assim:
publicbooleanareEqual(Strings1,Strings2){
if(s1.length()!=s2.length)returnfalse; //se o numero de caracteres for diferente, nem precisa ver o resto!inttamanho=s1.length();for(inti=0; i < tamanho; i++)if(s1.charAt(i)!=s2.charAt(i))returnfalse;returntrue;
}
Agora, para alterar o que o nosso amigo fez ali em cima para que o usário entre com as palavras, é bem simples. Dê uma estudada na classe Scanner e como usá-la para ler do teclado. É bem simples. Você também não vai querer tudo de mão beijada né? Estuda meu camarada!