Problemas para encontrar determinado texto na String

2 respostas
D
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??
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();
}
Desde ja agradeço.

2 Respostas

M

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);
        
    }
}
D

@miyas obrigado pela atenção.

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!!

Desde já agradeço.

Criado 8 de fevereiro de 2013
Ultima resposta 8 de fev. de 2013
Respostas 2
Participantes 2