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:
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;
}
}
}
}