Java manipulação comparação entre Strings

Java

03/03/2017

Boa Noite Estou com uma duvida na manipulação de String:
Bom meu exercício consiste em Desenvolver uma classe em java, como o objetivo de realizar analises em uma cadeia de caracteres. Que contem alguns métodos, como:
- Definir(setar) uma cadeia principal de caracteres;
- Definir(setar) uma cadeia secundária de caracteres;
- Retorna quantas vezes o cadeia secundária ocorre na cadeia principal;
- Retorna a posição da primeira ocorrência da cadeia secundária dentro da principal;
- Dado uma faixa de posições, retornar quantas vezes o cadeia secundária ocorre na cadeia principal;
- Dado uma faixa de posições, retornar a posição da primeira ocorrência da cadeia secundária dentro da principal.

Mas estou com problemas para chamar as funções na Classe com o Método Main;
Quem possa analisar meu código e me ajudar fico grato desde já:
Meu código segue abaixo:
Obrigado
Abraço

Classe com o Métodos:
package comparacao_de_strings;

/**
*
* @author Administrador
*/
public class Strings {

private int aux;
private int contaContem;
private int contem;
private int naocontem;
String str1;
String str2;

public int getAux() {
return aux;
}

public void setAux(int aux) {

this.aux = aux;
}

public int getContaContem() {
return contaContem;
}

public void setContaContem(int contaContem) {
this.contaContem = contaContem;
}

public int getContem() {

return contem;

}

public void setContem(int contem) {

this.contem = contem;
}

public int getNaocontem() {
return naocontem;
}

public void setNaocontem(int naocontem) {
this.naocontem = naocontem;
}

public String getStr1() {
return str1;
}

public void setStr1(String str1) {
this.str1 = str1;
}

public String getStr2() {
return str2;
}

public void setStr2(String str2) {
this.str2 = str2;
}

public boolean existe() {
int tamP = str1.length();
int tamS = str2.length();
int i, j = 0;
for (i = 0; i <= tamP - tamS; i++) {
if (str1.charAt(i) == str2.charAt(0)) {
while (str1.charAt(i + j) == str2.charAt(j)) {
j++;
if (j == tamS);
return true;

}
}
}
return false;
}

public int compararStrings(String str1, String str2) {
int tamanhodastr1 = str1.length();
int tamanhodastr2 = str2.length();
int aux = 0;
for (int i = 0; i < tamanhodastr1; i++) {

for (int x = 0; x < tamanhodastr2; x++) {
if (str2.charAt(x) != str1.charAt(i + x)) {
naocontem++;
if (str1.equals(str2)) {
System.out.println("");
}

} else {

contaContem++;
}

if (naocontem > 0) {
break;
}
}
if (naocontem == 0) {
contem++;

if (contem == 1) {
aux = i;
}
}

naocontem = 0;
}
return contem;
}

public int contFaisa(String str1, String str2, int inicio, int fim) {
int aux = 0;

int tamanhodastr1 = fim;
int tamanhodastr2 = str2.length();

for (int i = inicio; i < tamanhodastr1; i++) {

for (int x = 0; x < tamanhodastr2; x++) {
if (str2.charAt(x) != str1.charAt(i + x)) {
naocontem++;
} else {
contaContem++;

}

if (naocontem > 0) {
break;
}
}
if (naocontem == 0) {
contem++;

if (contem == 1) {
aux = i;
}
}

naocontem = 0;
}
return contem;
}
}

Classe Java que cria Objeto e chama os Métodos :
package comparacao_de_strings;

import java.util.Scanner;

/**
*
* @author Administrador
*/
public class Comparacao_de_Strings {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int opcao;
String str1;
String str2;
int inicio;
int fim;
int sair;
Strings t = new Strings();
Scanner ler = new Scanner(System.in);
while (true) {
System.out.println("Digite 1 para comparar Strings ; "
+ "2 para comparar em uma faixa de posições ;"
+ " ou 0 para sair");
opcao = ler.nextInt();
switch (opcao) {
case 1:
System.out.println("String nº1:");

str1 = ler.nextLine();

System.out.println("String nº2:");

str2 = ler.nextLine();

System.out.println("A String 2 Contem " + t.getContem() + " vezes na String 1");
System.out.println("A primeira ocorrencia aparece em " + t.getAux() + " ");
t.compararStrings(str1, str2);
break;
case 2:
System.out.println("String nº1:");
str1 = ler.nextLine();
System.out.println("String nº2:");
str2 = ler.nextLine();
System.out.println("Escreva o valor de inicio para a faixa de Valores");
inicio = ler.nextInt();
System.out.println("Escreva o valor final para a faixa de Valores");
fim = ler.nextInt();
t.contFaisa(str1, str2, inicio, fim);
System.out.println("A String 2 Contem " + t.getContem() + " vezes na String 1");
System.out.println("A primeira ocorrencia aparece em " + t.getAux() + " ");
break;
default:
System.out.println("Vc saiu");
break;
}
System.out.println("");
if (opcao == 0) {

break;

}
}

}

}
Giovane

Giovane

Curtidas 0

Melhor post

Paulo Hendrix

Paulo Hendrix

04/03/2017

ola você esta usando nomes que são restritos;
fala assim
cria um Classe com o nome TelaComapra o Código dela esta a baixo;
package comparacao_de_strings;  // troque aqui o nome para seu pacote

import java.util.Scanner;
/**
 *
 * @author kn0w
 */
public class TelaCompara {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int opcao;
        String str1;
        String str2;
        int inicio;
        int fim;
        int sair;
        
        StringText t = new StringText();
        Scanner ler = new Scanner(System.in);
        while (true) {
            System.out.println("Digite 1 para comparar Strings ; "
                    + "2 para comparar em uma faixa de posições ;"
                    + " ou 0 para sair");
            opcao = ler.nextInt();
            switch (opcao) {
                case 1:
                    System.out.println("String nº1:");

                    str1 = ler.nextLine();

                    System.out.println("String nº2:");

                    str2 = ler.nextLine();

                    System.out.println("A String 2 Contem " + t.getContem() + " vezes na String 1");
                    System.out.println("A primeira ocorrencia aparece em " + t.getAux() + " ");
                    t.compararStrings(str1, str2);
                    break;
                case 2:
                    System.out.println("String nº1:");
                    str1 = ler.nextLine();
                    System.out.println("String nº2:");
                    str2 = ler.nextLine();
                    System.out.println("Escreva o valor de inicio para a faixa de Valores");
                    inicio = ler.nextInt();
                    System.out.println("Escreva o valor final para a faixa de Valores");
                    fim = ler.nextInt();
                    t.contFaisa(str1, str2, inicio, fim);
                    System.out.println("A String 2 Contem " + t.getContem() + " vezes na String 1");
                    System.out.println("A primeira ocorrencia aparece em " + t.getAux() + " ");
                    break;
                default:
                    System.out.println("Vc saiu");
                    break;
            }
            System.out.println("");
            if (opcao == 0) {
                break;
            }
        }
    }


 }



agora crie outra classe. StringText; código da classe a baixo;

package comparacao_de_strings;  //troque aqui o nome para seu pacote

/**
 *
 * @author kn0w
 */
public class StringText {

    private static TelaCompara TelaCompara() {
        TelaCompara initi = new TelaCompara();
        initi.TelaCompara();
        return null;
    }

    private int aux;
    private int contaContem;
    private int contem;
    private int naocontem;
    String str1;
    String str2;

    public int getAux() {
        return aux;
    }

    public void setAux(int aux) {
        this.aux = aux;
    }

    public int getContaContem() {
        return contaContem;
    }

    public void setContaContem(int contaContem) {
        this.contaContem = contaContem;
    }

    public int getContem() {
        return contem;
    }

    public void setContem(int contem) {
        this.contem = contem;
    }

    public int getNaocontem() {
        return naocontem;
    }

    public void setNaocontem(int naocontem) {
        this.naocontem = naocontem;
    }

    public String getStr1() {
        return str1;
    }

    public void setStr1(String str1) {
        this.str1 = str1;
    }

    public String getStr2() {
        return str2;
    }

    public void setStr2(String str2) {
        this.str2 = str2;
    }

    public boolean existe() {
        int tamP = str1.length();
        int tamS = str2.length();
        int i, j = 0;
        for (i = 0; i <= tamP - tamS; i++) {
            if (str1.charAt(i) == str2.charAt(0)) {
                while (str1.charAt(i + j) == str2.charAt(j)) {
                    j++;
                    if (j == tamS);
                    return true;
                }
            }
        }
        return false;
    }

    public int compararStrings(String str1, String str2) {
        int tamanhodastr1 = str1.length();
        int tamanhodastr2 = str2.length();
        int aux = 0;
        for (int i = 0; i < tamanhodastr1; i++) {
            for (int x = 0; x < tamanhodastr2; x++) {
                if (str2.charAt(x) != str1.charAt(i + x)) {
                    naocontem++;
                    if (str1.equals(str2)) {
                        System.out.println("");
                    }
                } else {
                    contaContem++;
                }
                if (naocontem > 0) {
                    break;
                }
            }
            if (naocontem == 0) {
                contem++;
                if (contem == 1) {
                    aux = i;
                }
            }
            naocontem = 0;
        }
        return contem;
    }

    public int contFaisa(String str1, String str2, int inicio, int fim) {
        int aux = 0;
        int tamanhodastr1 = fim;
        int tamanhodastr2 = str2.length();
        for (int i = inicio; i < tamanhodastr1; i++) {
            for (int x = 0; x < tamanhodastr2; x++) {
                if (str2.charAt(x) != str1.charAt(i + x)) {
                    naocontem++;
                } else {
                    contaContem++;
                }
                if (naocontem > 0) {
                    break;
                }
            }
            if (naocontem == 0) {
                contem++;
                if (contem == 1) {
                    aux = i;
                }
            }
            naocontem = 0;
        }
        return contem;
    }
    public static void main(String[] args){  
        TelaCompara();
        
    }
}



olha faz desta forma
GOSTEI 1
POSTAR