Ajuda com Programação, NetBeans.

    Autor Mensagem
    Gianyny
    Veterano
    # jul/09


    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
    Veterano
    # jul/09
    · 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
    Veterano
    # jul/09
    · 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
    Veterano
    # jul/09
    · 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
    Veterano
    # jul/09
    · votar


    Ae, testei, ta funcionando beleza.

    Gianyny
    Veterano
    # jul/09
    · 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
    Veterano
    # jul/09
    · votar


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

    Sumerrew
    Veterano
    # jul/09
    · 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
    Veterano
    # jul/09
    · 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
    Veterano
    # jul/09
    · votar


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

    Sumerrew
    Veterano
    # jul/09
    · 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
    Veterano
    # out/09
    · 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 ¬¬ ....

      Enviar sua resposta para este assunto
              Tablatura   
      Responder tópico na versão original
       

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