Duvidas no meu exercico de String, Split !me ajudem

7 respostas
FGT

Bom estou fazendo um trabalho que presisa o seguinte:

Trabalho Segunda Parcial (cont.)
? Objetivo (cont.)
? A partir de um texto lido pelo teclado, identificar a ocorrência de
palavras (tags) repetidas.
? Apresentação dos resultados em dois formatos:
? Ordem decrescente o número de ocorrências por palavra
encontrada:
? Texto = ?Curitiba é a capital do Paraná. Em março, Curitiba é também
a capital do teatro.?
? Ocorrências: Curitiba (2), capital (2), …
? Palavras envolvidas por uma tag:
? Texto = ?Curitiba é a capital do Paraná. Em março, Curitiba é também
a capital do teatro.?
? Ocorrências: <2>Curitiba</2> <2>é</2>, …

bom eu ja fiz uma parte mas agora não estoru conseguindo imprimir na tela oque o professor me pediu nem comparar as palavras que estao repetindo!
Presiso que me deem uma forsinha!

import java.util.Scanner;

public class ExercicioString 
{	
	public static void main (String args[])
	{
		int contP;
		String texto;
		String separador[];
		Scanner sc = new Scanner(System.in);
		
		System.out.println("Digite uma frase:");
		texto = sc.nextLine();
		
		separador = texto.split(" ");
		
		
		for(contP =0; contP < separador.length; contP++)
		{
			System.out.println("Pos " + contP + " : " + separador[contP]);
		}		
	}

}

Alguem poderia me dizer como eu posso fazer para imprimir e como comparar as palavras e imprimilas do jeito que o professor quer?

Desde já Obrigado!
Abras…

7 Respostas

jj_df

Pra dar uma luz, pega todas as palavras exatamente como vc fez só que retirando as duplicações.

Depois procura na frase quantas ocorrências pra cada palavra.

Dá uma procurada por “ocorrência de palavra na frase” no oráculo(google) que o vc acha umas lógicas!

FGT

Procurei Oque vc me falo mais naum achei nada em JAVA apenas em pascal C e C#;

Alguem tem alguma soluçao ou dica sei la

danielJaponeis

Tem jeito bem mais facil de fazer, mas eu num lembro

desse jeito ainda da pra qbrar um galho!

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ExercicioString {
	private String texto;
	public String getTexto() {
		return texto;
	}

	public void setTexto(String texto) {
		this.texto = texto;
	}

	private int value = 0;

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

	public static void main(String args[]) {

		List<ExercicioString> aux = new ArrayList<ExercicioString>();
		Scanner sc = new Scanner(System.in);
		ExercicioString e = new ExercicioString();
		System.out.println("Digite uma frase:");
		System.out.println();
		e.setTexto(sc.nextLine());

		String[] separador = e.getTexto().split(" ");

		for (int contP = 0; contP < separador.length; contP++) {
			//System.out.println("Pos " + contP + " : " + separador[contP]);
			ExercicioString ex = new ExercicioString(separador[contP], 1);

			if (aux.isEmpty()) {
				aux.add(ex);
			}else if(aux.contains(ex)){
				aux.remove(ex);
				ex.setValue(ex.getValue()+1);
				aux.add(ex);
			}else
				aux.add(ex);
		}
		String x="";
		for(ExercicioString ex : aux){
			x+="Ocorrencias: " + ex.getTexto() + "("+ex.getValue()+")\n";
		}
		System.out.println(x);
	}

	public ExercicioString(String txt, int val) {
		this.texto = txt;
		this.value = val;
	}
	public ExercicioString(){
		
	}

	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof ExercicioString))
			return false;
		ExercicioString other = (ExercicioString) obj;
		if (texto == null) {
			if (other.texto != null)
				return false;
		} else if (!texto.equals(other.texto))
			return false;
		return true;
	}
	

}
FGT

Sim deu tudo serto desse geito mais é o seguinte eu naum entendi quase nada pois fazem 3 meses que comecei e ainda naum sei quase nada aprendi só o basico do basico ainda.Tive 2 aulas de String só!

Poderia me ajudar de outra forma? Dum geito mais simples sei lá pq se eu for apresenta esse exercico assim ele vai pergunta aonde que eu aprendi tudo isso e eu naum vou saber explicar tudo :smiley: .

danielJaponeis

To bonzinho hoje hein^^

import java.util.Scanner;

public class Exer2 
{	
	public static void main (String args[])
	{
		int contP;
		String texto;
		String separador[];
		Scanner sc = new Scanner(System.in);
		
		System.out.println("Digite uma frase:");
		texto = sc.nextLine();
		
		separador = texto.split(" ");
		
		
		for(contP =0; contP < separador.length; contP++)
		{
			String x = separador[contP];
			int y=0;
			//fiz esse for pra comparar as palavras e ver se elas são iguais, o "equals" faz isso
			for(int i =0; i < separador.length; i++){
				String h = separador[i];
				if(x.equals(h)){
					y++;
				}
			}
			// pena q eu num consegui remover as palavras duplicadas, então elas imprimem duas vezes
			System.out.println("Ocorrencias: "+ x + "("+y+")");
			
		}		
	}

}
Felagund

Eu prefiro coca ao ives de Sprite :slight_smile:

Se bem que Sprite com Vodka também é bom

danielJaponeis

Realmente, coca é bem mais bacana!

Sprite fica mais ou menos com vodka, fanta fica melhor :smiley:

Criado 1 de junho de 2009
Ultima resposta 1 de jun. de 2009
Respostas 7
Participantes 4