Ocorrência de Parênteses ( ) em uma linha

Bom dia Galera sou novo aqui no grupos, e gostaria de saber como fazer uma “classe” para controlar a Ocorrência de Parênteses ( ) em uma unica linha.

Abraços

Não entendi muito bom.
Explique melhor o seu cenário.

Vamos lá amigo.

Seguinte.

Tenho uma interface que faz um upload de um arquivo X.

Preciso percorrer linha a linha desse arquivo para achar a ocorrencia de Parênteses.

Porem a procura não precisa ser muito complexa, preciso saber exatamente qdo ele (Parênteses) começou e se terminou qdo terminou.

Preciso controlar isso para depois soltar um arquivo com log´s, se em uma determinada linha começou e fechou um Parênteses.

Me fiz entender ???

Caso não tento explicar de uma outra maneira…

Muito obrigado pela ajuda

Abraços

Bruno Rabelo

I ae Bruno, Vc já consegue abrir o arquivo e percorrer as linhas??

Fala Rafael blz???

Cara ainda não… ta complicado… Vc tem alguma ideia de como fazer isso??

Abraços,

Tente criar métodos que abram o arquivo e gerem Strings, daí você trabalha em cima de cada uma das linhas.

Eu acho que eu já vi algo assim por aqui, tem que dar uma olhada…

Seria a idéia de um pequeno compilador?

Acho que da pra simplificar mesmo, leia cada linha e depois procure os ()

será que se você fizer assim funciona

BufferedReader ler = new BufferedReader(new FileReader("novo.txt")); 
			
			String linha = "";
			while((linha = ler.readLine()) != null){
				System.out.println(linha);
			}
			ler.close();

procurar a string eu num sei fazer

abraço

Se você quer saber se teve ocorrência, você pode usar contains da classe string, se você quer contabilizar acredito que split resolve seu problema.

Gustavo,

Seria +/- a idéia de um compilador mesmo.

Agradeço a todos pela ajuda…

resolveu?

Paulo,

Ainda não consegui resolver.

Alguem teria +/- um modelo ja pronto de como fazer isso.

Abraços,

Obrigado.

com o codigo que eu passei você já terá o conteudo de uma linha

basta apenas implementar para ele encontrar os paranteses

abraço

import java.io.FileWriter;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.IOException;

public class CriaArquivo {
	public static void main(String[] args){
		try {
			BufferedWriter arquivo = new BufferedWriter(new FileWriter("novo.txt"));
			arquivo.write("teste da (silva) e silva");
			arquivo.newLine();
			arquivo.write("teste da linha2");
			arquivo.close();
			BufferedReader ler = new BufferedReader(new FileReader("novo.txt")); 
			
			String linha = "";
			String conteudo = "";
			int i = 1;
			while((linha = ler.readLine()) != null){
				String linhaTmp1 = linha;
				String linhaTmp2 = linha;
				conteudo = "";
				int ocorrencia = -1;
				while((ocorrencia = linhaTmp1.indexOf("(") + 1 ) > 0){
						linhaTmp1 = linhaTmp1.substring( ocorrencia );
						int ocorrenciaFim = linhaTmp2.indexOf(")");
						
						if(ocorrenciaFim >= 0){
							conteudo = linha.substring(ocorrencia, ocorrenciaFim);
							System.out.println("Conteudo Dentro de Parenteses na Linha " + i + ":" + conteudo);
						}
				}
				System.out.println(linha);
				
				i++;
				
			}
			ler.close();
		} 
		catch (IOException e) {
			e.printStackTrace();
		}
	}
}

deve ter forma melhor de fazer, mas esse resolve se cada linha tiver apenas um par de parentese b[/b] com conteudo dentro

falta implementar uma rotina de repetição ai

eu num consegui fazer!

abraço

Cara eu estou aprendendo tbm. Como não consegui entender pq vc precisa saber o evento dos parenteses, fiz um esquema de pegar as linhas que tem o evento…

[code]public class Util{
public static void main (String[] args) throws IOException{
File file = new File(“C:/SeuArquivo.txt”);
if (file.exists())
System.out.println(" Existe " + file.getAbsolutePath());

	FileInputStream fis;
	fis = new FileInputStream(file.getAbsolutePath());
	InputStreamReader streamReader = new InputStreamReader(fis);
	BufferedReader reader = new BufferedReader(streamReader);
	String linha = "";
	while((linha = reader.readLine()) != null){
		if (linha.contains("(") || linha.contains(")"))
			System.out.println(linha);
	}
	reader.close();
}

}[/code]

OBs. Se alguem puder dar uma corrigida e me apontar os erros ou a melhor forma de fazer eu ficarei muito grato.

Abs.

Depende do que ele quer mesmo, por exemplo, voce pode abrir parenteses em uma linha e fechar na outra?
Pode abrir parenteses dentro de um parenteses?

Tudo isso tem que ser levado em consideração.

Posta o código que voce já fez que a gente vai ajudando.

Abraço

Galera…

A todos muito obrigado mesmo!!!

Abraços,