Pessoal…qual é o erro nesse código?
o resultado tem que ser esse …
[b]Acho que o erro tá na linha14 tou a um tempinho sem fazer vetor e não lembro direito…
F
e
l
i
p
e
e
p
i
l
e
f
Ou seja o nome normale o nome de trás para frente…
Típico exemplo de programação “compilou, tá certo”. É óbvio que nem sempre quando um programa compila corretamente ele está certo.
Pense um pouquinho: o que você está querendo fazer nessa linha?
E
entanglement
Outra dica. Pegue esse seu programa e rode-o em uma IDE (ou seja, vá “debugando” o programa, ou seja, vá acompanhando, passo a passo, os valores das variáveis. Pra começo de conversa, provavelmente você vai é acabar pegando um “ArrayIndexOutOfBoundsException” nessa tal linha, mas isso não vem ao caso. Qual é o valor da variável “teste” antes de chegar nessa linha? Qual o valor de “vetor[teste]” (isso se não provocar um ArrayIndexOutOfBounds"?
F
felipevs
eu ja debuguei aqui… ta com o valor ‘F’
mas é assim mesmo que o vetor vai receber o valor do char?
passei um tempo estudando java OO e nunca mais fiz vetor…
F
felipevs
ah! a IDE nao tá acusando erro na linha 14 . esse é só um palpite pq eu olhei o resto do código e creio eu que esteja certo
E
entanglement
Só para você entender melhor, vou resolver o exercício para você. Rode o programa corrigido passo a passo, e vai entender que não precisa de um for dentro do outro.
// O problema resolvido, sem ficar usando vetores à toaStringnome="Felipe";inttamanho=nome.length();// Simples, não? Isto já imprimiria "epileF". for(inti=tamanho-1;i>=0;--i){System.out.println(nome.charAt(i));}// Agora usando um vetor de char (cuidado, char não é String. char é um tipo especial de inteiro,// com 2 bytes, quase igual ao "short".)// De quebra, vou ensinar você a usar um "for" que tem 2 variáveis - uma (j) que conta para trás, // como você já fez acima, e outra (i) que conta para frente. char[]vetor=newchar[tamanho];for(inti=0,j=tamanho-1;i<tamanho;i++,j--){vetor[i]=nome.charAt(j);}// Imprimindo o array de caracteres...for(inti=0;i<tamanho;++i){System.out.println(vetor[i]);}// Sei, sei, você queria um array de strings mesmo. Então tá. Vamos fazer assim:String[]vetorString=newString[tamanho];for(inti=0,j=tamanho-1;i<tamanho;i++,j--){vetorString[i]=nome.substring(j,j+1);}// Imprimindo o array de strings...for(inti=0;i<tamanho;++i){System.out.println(vetorString[i]);}
F
felipevs
valeu mesmo cara…
nem lembrava mais de CharAt hihi
o “substring” significa o que mesmo?
E
entanglement
s.substring (a, b)
s é a string
a é a posição inicial (começa por 0)
b é a posição final, mais 1
Por exemplo, o que vai ser impresso pelas 2 linhas seguintes? (Dica: o nome de um campo marítimo de petróleo)
Para imprimir a String ao contrario, não precisa transformar ela em absolutamente nada, é só percorre-la ao contrário.. Mas caso queira, depois, a String ao contrário no programa, usar o método reverse do StringBuilder ou StrngBuffer é melhor...
ex:
//Apenas para imprimir:Stringnormal="Felipe";for(inti=0;i<normal.lenght();i++)//Imprime normalSystem.out.println(normal.charAt(i));for(inti=normal.lenght();i>0;i--)//Imprime ao contrárioSystem.out.println(normal.charAt(i));//Ta, mas como eu faço para ter a String aqui no programa?//R: método reverseStringBuildersb=newStringBuilder(normal);Stringcontrario=sb.reverse().toString();