Home · Resposta · Registre-se para poder enviar mensagens · Regras · Arquivo · Central de Ajuda ·

Fóruns Cifra Club / OFF TOPIC / Ajuda com Programação, NetBeans.
Autor Mensagem
Gianyny
Membro Novato
# Enviado: 4/jul/09 13:48


Ai pessoal, to aqui pelejando pra estudar pra uma prova só que não estou entendendo umas linhas de código aqui. Quem puder me ajudar.

/* Criar uma classe que receba uma String e forneça os seguintes métodos:
* a. int contarOcorrencias(String s): método que deverá contar quantas
* ocorrências da String 's' existem na String informada.
*
* b. String inverteString(): retorna a String informada de trás pra frente(espelhada).
*/
package PROVA2BIM;

import javax.swing.JOptionPane;

public class exercicio1 {
static String frase;
public static void main(String[] args) {

frase = JOptionPane.showInputDialog(null, "Entre com a String");

String letra = JOptionPane.showInputDialog(null,"Entre com a letra");
JOptionPane.showMessageDialog(null,"Ocorrencias da letra: "+contarOcorrencias(letra));

JOptionPane.showMessageDialog(null,frase +" \nA palavra invertida é: "+inverterFrase());
}

private static int contarOcorrencias(String s){
char letra = s.charAt(0);
int tam = frase.length();
int cont = 0;

for(int i=0; i<tam; i++){
if(frase.charAt(i)==letra){
cont++;
}
}
return cont;
}
private static String inverterFrase(){
int tam = frase.length();
String inversa=" ";
for(int i=tam-1; i>=0; i--){
inversa = inversa + frase.charAt(i);

}
return inversa;
}
}

Tipo, esses métodos contarOcorrencias e inverterString eu não to entendendo nada. Alguém me explica ai.

Sumerrew
Membro
# Enviado: 4/jul/09 14:33
Votar


Gianyny
Bom, vamos por partes.
Não entendo muito, mas vamos lá.

private static int contarOcorrencias(String s){
char letra = s.charAt(0);
int tam = frase.length();
int cont = 0;


nao sei se eh private static int ali, nao seria só pivate static contarOcorrencias(String s){ ?

Bom, aí cria-se uma variável "letra" do tipo char, que recebe o valor do que tem na String s, na posição 0...se fosse s.charAt(5), iria receber a letra que está na posição 5, e assim por diante...
ai cria-se uma variavel "tam" do tipo integer, que recebe o comprimento da string frase, o .length() serve pra pegar o comprimento, ok...
e a variável "cont" do tipo integer, serve como contador, e está sendo inicializada com 0.

for(int i=0; i<tam; i++){
if(frase.charAt(i)==letra){
cont++;
}
}
return cont;
}


Nesse laço, ele faz um if pra ver se o caracter que está na variável "i" é igual ao que está na variável letra, se for, ele aumenta o cont, entçao quando sair do laço ele mostra o cont, que vai estar com o valor que vai ser a quantidade de letras que tem...

private static String inverterFrase(){
int tam = frase.length();
String inversa=" ";
for(int i=tam-1; i>=0; i--){
inversa = inversa + frase.charAt(i);

}
return inversa;
}

o integer "tam" recebe o comprimento da variavel "frase", e é inicializada uma String "inversa" sem nada dentro, ou seja, que comando inútil, era só fazer String s;
aí no laço, se o I for igual a variavel TAM -1, a variavel inversa recebe ela + o caracter que está na posição 1, e assim vai, até inverter tudo e sair do laço, e aí retorna a variável inversa..

JOptionPane.showMessageDialog(null,frase +" \nA palavra invertida é: "+inverterFrase());
aqui tem que botar ali no inverterFrase(inversa), senão não vai mostrar...

Cara, tu que fez esse código aí?

DarkMakerX
Membro Novato
# Enviado: 4/jul/09 14:34
Votar


Odeio Java >:(

Mas pelo que entedi, esse inverterFrase recebe o tamanho da string. Daí ele começa pelo ultimo caractere desse tamanho pego
Ex. "Casa" = 4 caracteres. Então ele pega o 4.

Daí ele começa a juntar os caracteres
Ex. O caractere 4 de "Casa" é "a". Então ele pega "a". Daí o contador diminui -1, ou seja ele vai pegar o caractere 3, que é o "s". E assim ele monta a string invertida.

Sumerrew
Membro
# Enviado: 4/jul/09 14:37
Votar


eu to sem IDE aqui pra testar, to baixando Eclipse, pq formatei essa bosta ontem...então, jaja eu rodo aqui e vejo oq tem de errado, e se falei alguma merda aí, é pq to surtando com os trabalhos da facul e 400 linguagens pra fazer ao mesmo tempo hahaha

Sumerrew
Membro
# Enviado: 4/jul/09 14:51
Votar


Ae, testei, ta funcionando beleza.

Gianyny
Membro Novato
# Enviado: 4/jul/09 14:52
Votar


DarkMakerX
Valeu.

Sumerrew
Cara, tu que fez esse código aí?

Não, foi meu professor, to aqui com 7 programas pra estudar, tá foda, a prova é segunda.
Bom, você esclareceu boa parte das minhas duvidas, mais o que


for(int i=0; i<tam; i++){
if(frase.charAt(i)==letra){
cont++;
}
}
return cont;
}

Nesse laço, ele faz um if pra ver se o caracter que está na variável "i" é igual ao que está na variável letra, se for, ele aumenta o cont, entçao quando sair do laço ele mostra o cont, que vai estar com o valor que vai ser a quantidade de letras que tem...



Eu não tinha idéia pra que era essa condição, agora ficou claro.
Só não entendi é o porque dessa linha:

int cont = 0;

Sendo que no for eu já declarei um contador i.

Sumerrew
Membro
# Enviado: 4/jul/09 14:52
Votar


ali onde eu falei pra botar o (frase) dentro, ta errado, eu q to viajando, pq ali ele passa algum valor...hahaha

Sumerrew
Membro
# Enviado: 4/jul/09 14:53
Votar


Gianyny
Só não entendi é o porque dessa linha:

int cont = 0;

Sendo que no for eu já declarei um contador i.

Não sei se quando vc delcara ele já sai com 0 ou -1. Sei lá. Aí serve pra ele realmente entender que o cont é pra valer 0, inicializando mesmo a variável..

Gianyny
Membro Novato
# Enviado: 4/jul/09 14:56
Votar


Sumerrew

Não querendo abusar da boa vontade, mais esse aqui também tá dificil, ve se você entende ai:

/*Criar um método Java que receba uma palavra (String) como parâmetro e retorne
* verdadeiro ou falso (boolean) caso a palavra fornecida seja palíndroma. Um
* palíndromo é uma palavra que pode ser lida da esquerda para a direita ou da
* direita para esquerda obtendo a mesma palavra ex: Ana,Arara,osso,etc.
*/
package PROVA2BIM;

import javax.swing.JOptionPane;

public class exercicio2 {

public static void main(String[] args) {
String palavra = JOptionPane.showInputDialog(null, "Entre com a palavra:");
if(verificaPalindroma(palavra)){
JOptionPane.showMessageDialog(null,palavra + " é palindroma");
}
else
{
JOptionPane.showMessageDialog(null,palavra + " não é palindroma");
}
}
private static boolean verificaPalindroma(String palavra){
String invertida = "";
int tam = palavra.length();//tamanho da palavra
//Laço para inverter a palavra
palavra = palavra.toLowerCase();
for(int i=tam-1; i>=0; i--){
invertida = invertida + palavra.charAt(i);
}
if (palavra.equals(invertida)){ //Verifica se as duas variaveis String são inguais
return true;
}
else
{
return false;
}
}

}

Sumerrew
Membro
# Enviado: 4/jul/09 15:03
Votar


Gianyny
me add no msn, jack__seven@hotmail.com, por lá é mais facil falar oks

Sumerrew
Membro
# Enviado: 4/jul/09 15:05
Votar


Gianyny
esse aí, bem por cima, faz praticamente a mesma coisa que o anterior, só nao conta quantas letras de cada tem na palavra

ele guarda a palavra num lugar, faz uma cópia pra outro lugar, inverte a copia, e compara, se for igual, é palindromo, senao nao, barbada =)

xMarkosx
Membro Novato
# Enviado: 3/out/09 16:39
Votar


Bom aproveitando esse topico de um amigo...

queria perguntar se alguem sabe como abrir algum projeto no enterprise architect.... cria um até que dei conta mais agora quero abrir o infiliz e não tá abrindo ¬¬ ....

Envia sua resposta para este assunto:

        Tablatura   
 
 » Nome ou apelido:  » Senha 
 

Tópicos relacionados a Ajuda com Programação, NetBeans.


96.147 usuários cadastrados. Anuncie aqui!
Online agora: 89 · Visitantes: 73 / Membros: 16
[ jecaboy, Fernando VD, kickflip, lugaque, ranon.torres, JuniorBueno, Loola, Sioux, Arthur Schwartz, Arveny, Levy_Carvalho, Lucas Borlini, Dressaaa, tiago scott, TheGuitarShow, fallout ]
Recorde: 445 18/mar/09 19:36
Visitantes: 412 Membros: 33

miniBB forum software © 2001-2009
Terra Índice Chat E-mail