como faço um algoritmo que receba como parâmetro uma a string word= “arroz açucar” e ele me retorna a quantidade que ela aparece por linha.
O Conteúdo da Linha é :
linha 1 = arroz, feijão, queijo, açucar, peixe, carne ==> aqui aparece 1 vez
linha 2 = arroz, àgua, óleo, gás, chocolate,ovos ==> aqui não aparece
linha 3 = leite, pão, biscoito, café, tempero, farinha ==> aqui não aparece
linha 4 = açúcar, batata, pimentão, arroz, farinha ==> aqui aparece 1 vez
Cara eu quero quantidade exata dela por linha, nesse caso em específico o valor da string é “arroz açúcar”. quando separo ela conta a ocorrência do “arroz” ou a do “açúcar” e a que eu quero saber é a ocorrência da string = “arroz açúcar” ; Entendeu?
public List<List> transaction() throws FileNotFoundException, IOException {
List<List> trans = new ArrayList();
List temp;
DataBase(getFile(), getBr(), getEnd());
while (getBr().ready()) {
String line = getBr().readLine();
String[] token = line.split(",");
temp = new ArrayList();
for (int i = 0; i < token.length; i++) {
temp.add(token[i]);
}
trans.add(temp);
}
return trans;
}
2ª Executando alguns testes para analisar o comportamento
public class Teste {
public void transaction(String x) throws FileNotFoundException, IOException {
String line = "arroz, feijão, pão, açucar";
String[] token = x.split(" ");
int i=0;
while(line.contains(token[i]) && token[i].length()>i){
System.out.println("yes"+token[i++]);
}
}
public static void main(String[] args) throws Exception {
Teste t = new Teste();
String x= "arroz açucar";
t.transaction(x);
}
}
3 ª
public Vector frequent(Vector temp) { //recebe um vetor com 1-Item, 2-Itens e maiores que 3-Itens, e calcula a cardinalidade de cada item
Map<String, Integer> frequencyItem = new HashMap();
int count = 0;
for (int i = 0; i < temp.size() - 1; i++) {
for (int j = 0; j < temp.size(); j++) {
if (temp.get(i).equals(temp.get(j))) {
count = count + 1;
frequencyItem.put(temp.get(j), count);
}
}
count = 0;
}
frequentSets.putAll(frequencyItem);
// no final remove registros com suporte baixo, pois na primeira iteração ainda não se sabe o total de registros
for (Iterator<String> it = frequencyItem.keySet().iterator(); it.hasNext();) {
String itemSet = it.next();
if (frequencyItem.get(itemSet) < frequency) {
it.remove();
}
}
temp.clear();
temp.addAll(frequencyItem.keySet());
return temp;
}