Ola pessoal, estou trabalhando em um projeto que constitui-se em retirar determinadas informações de um site e exibi-las na tela.
No código abaixo ao exibir a string (inputLine) em determinado trecho, ela retorna a seguinte frase… “Linha muito longa… alterne para modo empacotado para ver a linha inteira…”.
Se este trecho for copiado e colado em um editor de textos ele exibe todos os caracteres que faltam normalmente…
Minha intenção é procurar neste emaranhado de caracteres encontrar um texto específico, e assim poder trata-lo… Alguém ai pode me socorrer??
[code]public Buffer() throws IOException{
URL url = new URL(“http://www.google.com”);//Aqui é o endereço do site desejado
File file = new File(“C:\Users\User\Desktop\google.htm”);//Aqui é onde sera criado uma pagina “.htm” (imagem) referente ao site.
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
BufferedWriter out = new BufferedWriter(new FileWriter(file));
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.write(inputLine);
out.newLine();
System.out.println(inputLine);//X
}
in.close();
out.flush();
out.close();
Por “tratá-lo” você quer dizer modificar o texto específico que você quer encontrar por outro?
Veja sobre as expressões regulares e as classes que trabalham com ela, como a Pattern e a Matcher. Elas localizam um padrão de sub strings no seu texto e podem substituí-las por outra string.
Esse exemplo resolve seu problema?
public class Teste {
public static void main(String args[]) throws Exception{
String frase = "Era uma vez um gato xadrez que falava irlandês e era uma string de interesse freguês do seu português";
Pattern padrao = Pattern.compile("string de interesse"); /*Texto específico que você quer encontrar*/
Matcher localizador = padrao.matcher(frase); /*jogo a frase no objeto Matcher, o "localizador"*/
String resultado = "";
if(localizador.find()){ /*CASO encontre (método obrigado a se chamar para trabalhar com os resultados do matcher)*/
resultado = localizador.replaceFirst("substituido"); /*substitua o que ele encontrou (1º elemento que for encontrado) pela string no parametro*/
}
System.out.println(resultado);
}
}
Na verdade o que eu estou tentando fazer é pesquisar um texto especifico dentro de uma string muito grande e não substitui-lo.
Se você utilizar um site mais carregado… o portal uol por exemplo… ao exibir a string contendo os caracteres deste site em certo trecho da saída ele exibe essa descrição… “Linha muito longa… alterne para modo empacotado para ver a linha inteira…”. .
Dentro deste determinado trecho eu não consigo buscar nada, simplesmente ele diz que a palavra ou texto que eu procuro não existe!
Se alguém já teve com os mesmos problemas por favor me ajudem!!