Depois eu tenho outro “exercício” pra fazer também…
Não são exercícios…pq eu nem tenho aula de programação…é só que um professor passou pra uns amigos meus e eu fiquei curioso em fazer…dai tentei e não consegui…
Eu não consigo “separar” as palavras…
Eu estava pensando em “separar as palavras” e verificar elas…mas por exemplo…um for pra separar e outro dentro pra verificar…
E sem usar substring(), StringBuffer…nada deste tipo…apenas com for!
packagepalindroma;importjava.util.Scanner;classPalindroma{publicstaticvoidmain(String[]args){Scannersc=newScanner();//ERRO NO CONSTRUTOR DA CLASSE SCANNERSystem.out.println("Digite o texto: ");Stringtexto=sc.nextLine();//Recebe o texto intinicio=0,fim=0,j=0;//Inicializa as variáveis pra ser a posição do 1º e do último caracteres da palavra for(inti=0;i<texto.lenght;i++){//ERRO NO LENGHT (LENGTH) DA VARIÁVELchara;while(a!=' '){//Percorre o texto até encontrar um " " a=texto.charAt(j);//Verifica se o caractere é um " " j++;}fim=j;//Posição do último caractere da palavra }}}
Ele mostra esses 2 erros que eu não sei como resolver!
Me ajudem por favor!
VantuilJose
Não resolvi tudo, mas achei dois erros:
A classe Scanner exige o System.in (entrada padrão, o console):
Scannersc=newScanner(System.in);
e na hora de comparar o certo é assim:
for(inti=0; i < texto.length(); i++) {
length é um método, por isso exige as duas aspas no ínicio.
Sou iniciante em java, mas espero ter ajudado.
claudneto
o do for eu não tinha percebido…
o do Scanner eu percebi agora!
=]
Vlw
Ele diz que tem que inicializar a variável a (char)
Ai eu coloco char a = ‘’;
E ele não dexa…pq é vazio!
VantuilJose
Apanhei um pouquinho aqui mais consegue, dá uma olhada, percorro a string ao mesmo tempo, pra frente e pra trás, com o i e o length - i
packagepalindromos;/** * * @author 02121 */importjava.util.Scanner;publicclassMain{/** * @param args the command line arguments */publicstaticvoidmain(String[]args){// TODO code application logic hereScannersc=newScanner(System.in);//ERRO NO CONSTRUTOR DA CLASSE SCANNER System.out.println("Digite o texto: ");Stringtexto=sc.nextLine();//Recebe o texto //Retirar todos os espaços da palavaraStringsemEspaco="";for(inti=0;i<texto.length();i++){//ERRO NO LENGHT (LENGTH) DA VARIÁVEL chara=texto.charAt(i);if(a!=' ')semEspaco=semEspaco+a;}Booleanpalindromo=true;for(inti=0;i<semEspaco.length();i++){if(semEspaco.charAt(semEspaco.length()-i-1)!=semEspaco.charAt(i)){palindromo=false;break;//sai do loop}}if(palindromo==true)System.out.println("É Palíndroma");elseSystem.out.println("Não é Palíndroma");}}
Testei várias vezes e deu certo. Se encontrar algum problema posta ai, mas vale a pena tentar fazer sem copiar só usando essa idéia de percorrer "pra frente e pra trás" ao mesmo tempo.
Espero ter ajudado
jubei
Acabei de resolver um problema parecido. Falta ainda deixar o código mais funcional.
packageinverte;importjavax.swing.JOptionPane;classInverte{staticStringInverteFrase(Stringx){Stringinvertida="";for(inti=x.length()-1;i>=0;i--){invertida+=(x.charAt(i));}returninvertida;}}/** * * @author pessoal */publicclassMain{/** * @param args the command line arguments */publicstaticvoidmain(String[]args){// TODO code application logic hereInvertefuncao=newInverte();Stringa=funcao.InverteFrase("ada");System.out.println(a);if(a=="ada"){System.out.println("esta palavra é um palindromo");}else{System.out.println("esta palavra não é um palindromo");}}}
claudneto
Blz…
Mas o que eu estou com dúvida agora…é tpw…
Eu “preciso” imprimir as palavras que são palindromas e as que não são…
Assim ele vê a frase inteira se é palíndroma ou não!
claudneto
jubei:
Acabei de resolver um problema parecido. Falta ainda deixar o código mais funcional.
packageinverte;importjavax.swing.JOptionPane;classInverte{staticStringInverteFrase(Stringx){Stringinvertida="";for(inti=x.length()-1;i>=0;i--){invertida+=(x.charAt(i));}returninvertida;}}/** * * @author pessoal */publicclassMain{/** * @param args the command line arguments */publicstaticvoidmain(String[]args){// TODO code application logic hereInvertefuncao=newInverte();Stringa=funcao.InverteFrase("ada");System.out.println(a);if(a=="ada"){System.out.println("esta palavra é um palindromo");}else{System.out.println("esta palavra não é um palindromo");}}}
Eu sei...fui "eu" que resolvi!
=)
claudneto
Seria “bom” eu usar ArrayList?
Tpw…eu pego a palavra e coloco num ArrayList…dai depois eu percorro a Lista e separo as Palindromas das não Palindromas…
Seria apresentável?
claudneto
packagemodulo2;importjava.util.Scanner;publicclassPalindroma{staticScannersc=newScanner(System.in);publicPalindroma(){}publicstaticvoidmain(String[]args){System.out.println("Digite o texto: ");Stringtexto=sc.nextLine();ePalindroma(texto);}publicstaticvoidePalindroma(Stringtexto){intinicio=0;intfim=0;intespaco=0;for(inti=0;i<texto.length()-1;i++){for(intj=espaco+1;j<texto.length();j++){Strings1="";Strings2="";if(texto.charAt(i)!=' '){espaco=i;fim=i-1;while(fim>=inicio){s1="";s1=s1+texto.charAt(fim);fim--;}while(fim>=inicio){s2="";s2=s2+texto.charAt(inicio);inicio++;}if(s1.equals(s2)){System.out.println(s2+" é palíndroma.");}else{System.out.println(s2+" não é palíndroma.");}}}}}}
Tem alguma coisa errada ae no ePalindroma...Ele não funciona direito...