Pesquisa palavra

9 respostas
J

Tenho o seguinte código:

import java.io.*;
import java.util.*;

class Arquivo {
  
  public static void main(String args[]) throws Exception {
        
    int tamanho;
   
    
    tamanho = 0;
    
    String nome_arq = "exemplo.wrl";
    FileReader arq = new FileReader(nome_arq);
    BufferedReader buffer = new BufferedReader(arq);
    
     
    String linha = buffer.readLine( );
    
      
       while ( linha != null ) {
       	  
   	          System.out.println( linha );
              linha = buffer.readLine( );
            
                  
        }     
        buffer.close();
  }
}

Agora preciso encontrar uma palavra nesse arquivo “exemplo.wrl” e exibir somente o trecho a partir desta palavra, até outra palavra.

Aguém sabe me dizer como faço isso?

9 Respostas

cariocathi

uma maneira, seria utilizar:

String newText = linha.substring( linha.indexOf( palavra_começo ), linha.indexOf( palavra_fim ) );

Shelson

kuando vc implementar , tem como vc postar o cod pronto ?

Rafael_Steil

Basicamente eh soh colocar um pouco de logica de programacao… vc tem um problema: pegar o conteudo entre duas palavras… digamos que a palavra inicial eh “inicio”, e a palavra final eh “fim”… uma maneira de fazer isso seria

import java.io.*; 
import java.util.*; 

class Arquivo 
{ 
	public static void main(String args[]) 
	{ 
		int tamanho = 0; 
		boolean pegou = false;
    
		String nome_arq = "exemplo.wrl"; 

		try {
			FileReader arq = new FileReader(nome_arq); 
			BufferedReader buffer = new BufferedReader(arq); 

			String linha = buffer.readLine( ); 
			while ( linha != null ) {
				if (linha.equals("inicio")) {
					pegou = true;
				}

				if (pegou) {
					System.out.println( linha ); 
				}

				if (linha.equals("fim")) {
					pegou = false;
				}

				linha = buffer.readLine( ); 
			}      

			buffer.close(); 
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	} 
}

Rafael

J

Já tinha tentado a lógica de programação, mas a tela aparece vazia.

pq será?

Rafael_Steil

ops…

a parte linha.equals() nao funcionara mesmo, ao menos que a linha tivesse somente a palavra em questao… voce pode trocar o equals() por indexOf(), que ai sim funcionaria corretamente.

Rafael

J

Ainda não deu!

Dá o seguinte erro: Incompatible type for if. Can’t convert int to boolean.bilidade:

Rafael_Steil

O indexOf() nao retorna true ou false, mas sim um numero inteiro. No caso, se o valor retornado for maior que -1, entao a palavra existe na frase.

Rafael

J

mas então não é o que eu preciso. É assim, preciso modificar alguns nodos vrml usando java, e para isso eu tenho que acessar o nodo e modificar. Mas como estou aprendendo java na marra não tenho idéia de como fazer. Até agora só consegui ler o arquivo!!!

Rafael_Steil

hmm… talvez isso ajude entao:

http://www.cg.tuwien.ac.at/studentwork/CESCG98/FSixta/
http://rw4.cs.uni-sb.de/~diehl/vrmlparser/
http://openvrml.sourceforge.net/

Rafael

Criado 4 de novembro de 2003
Ultima resposta 4 de nov. de 2003
Respostas 9
Participantes 4