Oi!
Estou tentando resolver um projeto e não sei bem por onde começar;
O projeto é o seguinte :
[quote] Introdução
Quando se escreve um texto em português deve-se ter cuidado para não repetir a mesma palavra demasiado cedo. O projeto que vos é proposto passa por desenvolver um programa Java que consiga detetar situações dessas dado um determinado texto. Como não só é mau repetir a mesma palavra, mas palavras da mesma família, o vosso programa deverá ser capaz de detetar palavras perto uma das outras que partilhem o mesmo prefixo (por exemplo, “uma reunião da máfia que reuniu os seus elementos mais perigosos”).
O programa para realizar esta pesquisa, palavra a palavra, usará dois parâmetros:
prefixo - a dimensão, em carateres, que o início de duas palavras devem partilhar para serem consideradas semelhantes.
Se o delta for 15 e o prefixo for 5, o programa detetaria as primeiras quatro ocorrências das palavras começadas por ‘metad’ (como o prefixo é 5, são somente as primeiras 5 letras de cada palavra). Só com um delta maior, seria capaz de detetar a última ocorrência (sublinhada no texto) dado encontrar-se a uma distância superior a 15 palavras.
Se o prefixo fosse apenas 3, o programa detectaria mais ocorrências (como, por exemplo, aparar e aparência).
[/quote]
O problema é :
[quote]A classe Word deverá conter os seguintes métodos:
Word(String newWord, int line, int word)- o construtor da classe que recebe uma string com a palavra, e qual o parágrafo onde está contida bem como a sua posição no parágrafo (a primeira palavra tem posição 1).
getWord()- devolve a palavra actual
getLinePosition()- devolve o índice do parágrafo.
getWordPosition()- devolve o índice da palavra.
isSamePrefix(Word other, int prefixSize)- verifica se uma outra palavra dada possui o mesmo prefixo que a palavra actual.
A classe Text deve conter os seguintes métodos:
Text(String[] text)- recebe um vector de strings que representa o texto actual
findBadWords(int delta, int prefixSize)- identifica todas as palavras do texto atual com os mesmos prefixos dentro do delta e da dimensão de prefixo dada.
defineReport(String format)- define um esquema de apresentação de resultados dado pela string format. Esta string é constituída por uma sequência de códigos que determinam como a informação é apresentada. São admíssiveis os seguintes códigos:
%w significa a palavra
%l significa o índice do paragrafo
%p significa o índice da palavra dentro do parágrafo
%c significa que se deve colocar uma vírgula
%n significa uma mudança de linha
%t significa uma tabulação
%s significa um espaço
%( significa um (
%) significa um )
Por exemplo, seja ‘metade’ a 8ª palavra do 3º parágrafo. Neste caso, o esquema de apresentação “%w%s%l” apresentaria esta ocorrência como “metade 3”; enquanto “%(%p%c%w%)” apresentaria a mesma ocorrência como “(8,metade)”.
formatWord(Word word)- utiliza o esquema de apresentação atual para devolver a formatação da palavra dada.
printReport()- devolve uma string com o relatório completo de todas as palavras encontradas, usando o esquema de formatação actual.[/quote]
Já inicializei o projeto fazendo os esqueletos:
public Text(String[] Text) {
}
public void findBadWords(int delta, int prefixSize) {
}
public boolean defineReport(String format) {
return false;
}
public String formatWord(Word word) {
return "";
}
public void printReport() {
}
}
public class Word {
public Word(String newWord, int line, int word) {
}
public String getWord() {
return null;
}
public int getLinePosition() {
return 0;
}
public int getWordPosition() {
return 0;
}
public boolean isSamePrefix(Word other, int prefixSize) {
return false;
}
}
Gostaria de saber se minha idéia está correta e que me ajudassem pois não sei mesmo o que hei-de fazer.
Obrigada