Busca Palavras em uma String

Olha pessoal,

Meu problema é o seguinte…
possuo uma String com “n” palavras, necessito achar uma certa palavra com 5 palavras antes e 5 depois… e guardar em uma string

String teste = "information of any kind referred to certain or ascertainable physical persons or legal entities.’;

o retorno seria…

5 palavras antes +"termo procurado " + 5 palavras depois
information of any kind referred to + “certain” + or ascertainable physical persons or

desde ja agradeço !

[EDIT] agora que me toquei… fiz tudo o que sempre fui contra… Cara, fizeste alguma coisa jah ?? Posta ai pra gente ver… Rsrsrss o Desafio (como nunca tinha feito nada parecido, resolvi logo…)

[code]import java.io.FileReader;
import java.util.ArrayList;
import java.util.Scanner;

public class Main4 {

public static void main(String[] args) throws Exception {
	ListaCorpus list = null;
	ArrayList<ListaCorpus> resultado = new ArrayList<ListaCorpus>();
	ArrayList<String> teste = new ArrayList<String>();
	ArrayList<String> teste1 = new ArrayList<String>();
	FileReader file = new FileReader("teste1.txt");
	Scanner in = new Scanner(file);
	FileReader file3 = new FileReader("teste2.txt");
	Scanner in3 = new Scanner(file3);
	FileReader file1 = new FileReader("text1.txt");
	Scanner in1 = new Scanner(file1);
	FileReader file2 = new FileReader("text2.txt");
	Scanner in2 = new Scanner(file2);
	String b = "";
	String b1= "";
	String c = "";
	String c1 = "";
	String id= "";
	String cincoAntes = "";

	while(in1.hasNext()){
		c = in1.nextLine();
		teste.add(c);
	}
	while(in2.hasNext()){
		c1 = in2.nextline();
		System.out.println(c1);
		teste1.add(c1);
	}
	while(in.hasNext()){
		b = in.nextLine();
		id = in3.nextLine();
		
			for(int i=0; i<teste.size();i++){
				String aux = teste.get(i).toLowerCase();
				b1 = b;
				b.replace('_', ' ');
				String aux12 = " "+b.toLowerCase()+" ";
				
				if(aux.contains(aux12)){
					
					
					list = new ListaCorpus(id,b1,i, "texto1");
					list.setCincopalavras(cincoAntes);
					resultado.add(list);
				}
			}
			for(int i=0; i<teste1.size();i++){
				String aux = teste1.get(i).toLowerCase();
				b1 = b;
				b.replace('_', ' ');
				String aux12 = " "+b.toLowerCase()+" ";
				
				if(aux.contains(aux12)){
					list = new ListaCorpus(id,b1,i, "texto2");
					resultado.add(list);
				}
			}
		}
	for(ListaCorpus aux: resultado){
		System.out.println(aux.toString());
	}
	in1.close();
	file1.close();
	in.close();
	file.close();
}

}[/code]
é mais ou menos por ai…
por exemplo…

uma palavra qualquer em uma String: java…
a String completa é : Diferentemente das linguagens convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um “bytecode” que é executado por uma máquina virtual.

eu preciso localizar 5 palavras antes dela e 5 depois…

java seria o ponto inicial de partida… como se fosse a posição inicial da procura…
pegaria 5 palavras antes: “para código nativo, a linguagem”
e 5 depois : “é compilada para um “bytecode””

só que o problema é que como vou ter acesso para essas outras palavras ? =x

abraço!

Divida seu texto em antes da palavra e depois da palavra. Depois disso, divida seus dois textos em um array com cada posição sendo uma palavra.

Vocês faz isso com apenas um método da classe String, chamado split. Dê uma olhada nele.

Expressão regular, resolve seu problema…

Em menos de 5 linhas vc faz isso…

Bom… eu tbm ia dar a ideia do contains() + split()… Mas ja que existe um meio mais simples com expressao regular, te recomendo a da uma estudada em Expressao regular e posta ai pro nosso amigo continuar ajudando voce…

Como nao manjo quase nada de expressao regular, tbm vou dar uma olhada e qualquer coisa posto aqui…

Abs :wink: