Mais 1 vez...alguem me pode ajudar?!

Tenho este código, e o seguinte ficheiro…

[code]import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;
import java.util.Vector;

public class calculo {
Vector vs= new Vector();
double media, desvioP;

void loadValues(){
	try {
		FileReader fr= new FileReader("C:\Documents and Settings\My Documents\Novo.txt");
		BufferedReader br= new BufferedReader(fr);
		for (;;) {
			String line= br.readLine();
			if ( line == null || line.equals("")) break;
			line = line.replace(",", ".");
			vs.add(new Double(line));
		}
		br.close();
	}
	catch (Exception exc) {
		exc.printStackTrace();
	}
}

void calcstatistics1(){
	 //Calcula media e desvio padrao em dois ciclo
	double m = 0, v = 0;
	int n = vs.size();

	for(int i = 0; i < n; i++)
		m += vs.get(i).doubleValue();	
	
	m /= n;

	for(int i = 0; i < n; i++)
		v += (vs.get(i).doubleValue() - m) * (vs.get(i).doubleValue() - m);
	v /= n;
	
	media = m;
	desvioP = Math.sqrt(v);
}

void calcstatistics2(){
	//Calcula media e desvio padrao em um ciclo
	double m = 0, v = 0;
	int n = vs.size();
	for(int i = 0; i < n; i++){
		m += vs.get(i).doubleValue();
		v += (vs.get(i).doubleValue() * vs.get(i).doubleValue());
	}

	m /= n;
	v /= n;
	v -= m * m;
	
	media = m;
	desvioP = Math.sqrt(v);
}

void filterValues() throws IOException{
	FileWriter fwA= new FileWriter("C:/Documents and Settings/Desktop/ValoresA.txt", false);
	FileWriter fwR= new FileWriter("C:/Documents and Settings/Desktop/ValoresR.txt", false);
	PrintWriter pwA= new PrintWriter(fwA);
	PrintWriter pwR= new PrintWriter(fwR);
	
	try {
		pwR.printf("# Rejeitados \n");
		pwR.printf("# N = " + vs.size() + "\n");
		pwR.printf("# media = " + media + "\n");
		pwR.printf("# desvioP = " + desvioP + "\n");
		pwR.printf("# media - desvioP = " + (media - desvioP) + "\n");
		pwR.printf("#\n");
		
		pwA.printf("# Aceites \n");
		pwA.printf("# N = " + vs.size() + "\n");
		pwA.printf("# media = " + media + "\n");
		pwA.printf("# desvioP = " + desvioP + "\n");
		pwA.printf("# media - desvioP = " + (media - desvioP) + "\n");
		pwA.printf("#\n");
		
		int n = vs.size();
		for(int i = 0; i < n; i++){
			if(vs.get(i).doubleValue() < Math.abs(media - desvioP))
				pwR.printf(Locale.getDefault(), "%.16f\n", vs.get(i).doubleValue());
			else
				pwA.printf(Locale.getDefault(), "%.16f\n", vs.get(i).doubleValue());;
		}
	}
	catch(Throwable t){
		t.printStackTrace();
	}
	finally{
		fwA.close();
		pwA.close();
		fwR.close();
		pwR.close();
	}
}

public static void main(String[] args) throws IOException {
	calculo c = new calculo();
	c.loadValues();
	//c.calcstatistics1();
	c.calcstatistics2();
	c.filterValues();
	
	System.out.println("Terminou:)!");
}

}[/code]

O programa calcula-me a média e o desvio padrão, depois com esses valores faz-me um calculo para uma conta que eu preciso!Se essa conta for maior que o valor que vai ler no ficheiro NOVO.TXT, manda para um ficheiro, caso contrário manda-me para outro!O meu problema é que quando fiz o programa só utilizava os valores do ficheiro, e agora preciso também das palavras que este contem associadas a esse valor…e o que queria era se alguem sabe fazer isso, ler o ficheiro, e deitar para fora, consoante os calculos, o nome com o valor!Sei que é confuso, mas alguem entendeu?
Agradecia imenso a vossa ajuda…
Obrigado

Olá!

Penso que com algumas classes do package java.util.regex você resolva o problema… de uma procurada em Matcher e Pattern… com elas você pode encontrar expressões em Strings, retornando a posição que foi encontrada a expressão e muitos outros métodos…
Tem alguns métodos da classe String que podem ajudar (matcher(), split())…

Abraços