Adicionar texto a uma matriz

Estou a começar a utilizar java e tenho um projecto para fazer…
Tenho de ter uma matriz, em que nas linhas recebe palavras e nas colunas textos .txt.
O objectivo é depois comparar se a palavra está nos textos txt. depois tenho de contar o numero de vezes que essa palavra aparece nos textos. nao sei se me estou a explicar bem…
mas preciso mesmo de ajuda.
o meu programa neste momento ja pede ao utilizador para escolher os documentos que quer introduzir, ja os introduz e guarda todas as palavras que estao dentro do documento.
Agora o meu problema é mesmo conseguir introduzir isso na matriz…
Será que me podem dizer como posso fazer isso? ou indicar-me algum site onde haja exemplos disso?tou farta de procurar e nao encontro nada que me ajude…
Obrigado

eu tb sou pessimo em portugues… mas um ponto de partida, é vc entender a real diferença entre

k e q

k tem a pronuncia de cá
q tem a pronuncia de que

então trocar… que por k, é uma pessima ideia… pense nisso!

^^

Ps.: Não entendeu ? tente ler seu texto, eu tive um tremenda dificuldade ^^

peço desculpa é do hábito… :)vou reescrever

[code]public class ContaPalavra {
private final String palavra;
private final Map<String,Integer> txtCount = new HashMap<String,Integer>();

 public ContaPalavra(String palavra) {
       this.palavra = palavra;
 }

 public ContaPalavra addCount(String txtFile) {
     int count = getCount(txtFile);
     txtCount.put(txtFile, ++count);
     return this;
 }

 public int getCount(String txtFile) {
     if (!txtCount.containsKey(txtFile))
         return 0;
     return txtCount.get(txtFile);
 }

 public String getPalavra() {
     return palavra;
 }

//é imporante implementar EQUALS e HASHCODE quando usa coleções, c kizer mais infos, veja meu blog, na minha assinatura

@Override
public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }
    if (getClass() != obj.getClass()) {
        return false;
    }
    final ContaPalavra other = (ContaPalavra) obj;
    if ((this.palavra == null) ? (other.palavra != null) : !this.palavra.equals(other.palavra)) {
        return false;
    }
    return true;
}

@Override
public int hashCode() {
    int hash = 7;
    hash = 47 * hash + (this.palavra != null ? this.palavra.hashCode() : 0);
    return hash;
}

}[/code]

[code]public class GuardaPalavras {
private List lista = new ArrayList();

public GuardaPalavras addPalavra(String palavra, String txtFile) {
    ContaPalavra cp = getContaPalavra(palavra);
    if (cp == null) {
        cp = new ContaPalavra(palavra);
        lista.add(cp);
    }
    cp.addCount(txtFile);
    return this;
}

public ContaPalavra getContaPalavra(String palavra) {
    for (ContaPalavra cp : lista) {
        if (cp.getPalavra().equals(palavra))
            return cp;
    }
    return null;
}

public List<ContaPalavra> getLista() {
    return lista;
}

public int getCount(String palavra, String txtFile) {
    ContaPalavra cp = getContaPalavra(palavra);
    if (cp == null)
        return 0;
    return cp.getCount(txtFile);
}

}[/code]

os imports usados foram…

import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;

como usar ?? assim…

[code] public static void main(String … args) {
GuardaPalavras repositorio = new GuardaPalavras();

    repositorio
            .addPalavra("José","diario.txt")
            .addPalavra("Macaco","abobrinha.txt")
            .addPalavra("José","abobrinha.txt")
            .addPalavra("José","abobrinha.txt")
            .addPalavra("José","abobrinha.txt");


    System.out.println(repositorio.getCount("José","abobrinha.txt")); //resultado 3
    System.out.println(repositorio.getCount("José","diario.txt")); //resultado 1
    System.out.println(repositorio.getCount("Macaco","diario.txt")); //resultado 0
    System.out.println(repositorio.getCount("Cebola","diario.txt")); //resultado 0
}[/code]

Obrigado! vou tentar implementar esse codigo no meu:)
muito obrigado pela ajuda!:slight_smile:

Nao faz exactamente o que eu pretendo, mas foi uma grande ajuda para contar as palavras e para perceber a maneira como sao gravadas as informações!
:slight_smile:
Muito Obrigado.

BuZZa

[quote=BuZZa]Obrigado! vou tentar implementar esse codigo no meu:)
muito obrigado pela ajuda!:)[/quote]

ok … mas leia o código com atenção, veja o que a calsse ContaPalavra faz…

veja que ela guarda 2 coisas… uma String, contendo a palavra… e um mapa…

um mapa sempre guarda informações de chaves,e valores… a chave no caso é o arquivoTxt, e o valor é o contador…

getCount(txtFile) …
eu verifico no mapa, se ja existe o alguma key para txtFile, se existir, eu recupero o valor para o contador através de “txtCount.get(txtFile);” caso não existe o contador é “0”.

veja que quando alguem faz um addCont(txtFile) … eu subistituo o valor no mapa, pelo novo valor, se não existir o valor no mapa, ele é criado pelo proprio mapa, atuomaticamente … “txtCount.put(txtFile, ++count);” … veja que antes de incluir, eu uso ++count, ou seja, incremento o contador, antes de atualizar o valor.

Afinal tinha entendido mal o que tenho de fazer…
Tenho de ter por exemplo 2 textos: s1=“joao e pedro no joao” e s2=“ola sou o joao pedro”
tenho de comparar se as palavras que estao no s1 estao no s2 ,e conta-las pa matriz…(esta parte é que me esta a deixar doida)

junto envio o codigo, para ver se me podem ajudar…

vou tentar dar o exemplo em linguagem natural do que preciso fazer…

s1=“joao e pedro no o joao” e s2=“ola sou o joao pedro”

se “joao” do s1 estiver em s2 conta++ e passo valor para essa posiçao da matriz
se nao estiver meto 0
neste caso o conta=1, porque so aparece 1 vez.
Se a palavra se repetir no s1 tem de ser excluida, mas no S2 nao.
com este exemplo deveria dar uma matriz deste genero:

  0 0 0 1 0
  0 0 0 0 0
  0 0 0 0 1
  0 0 0 0 0
  0 0 1 0 0 
  0 0 0 1 0

nao consigo fazer a matriz… tens de ser tudo automatico, a escolha dos textos é automatica (ja feito) e dp a passagem dos valores tambem…