Jump to content

pegar uma uma frase dentro de uma { }


sabing
 Share

Recommended Posts

Boa tarde pessoal eu estou com uma duvida eu estou querendo pegar uma frase dentro de uma {oieee}

exemplo

String c ="oieee asdsadasd {pegar essa frase} oieeeasdasd ";
System.out.println(c.substring(c.indexOf("{")+1, c.lastIndexOf("}")));

funciona !

mais eu quero fazer esse código funcionar em uma textarea

String c =this.textArea1.getText();
System.out.println(c.substring(c.indexOf("{")+1, c.lastIndexOf("}")));

se eu colocar uma linha funciona perfeitamente mais seu adicionar mais de uma linha não funciona exemplo:

aqui funciona :

programa NomePrograma;

variaveis

x,i,z:inteiro

inicio

escreva('Digite o numero: ');

leia(x);

escreva('Digite o numero: ')

leia(i);

{oiiee}// pega so essa linha

escreva('Resultado: ');

fim.

não funciona:

programa NomePrograma;

variaveis

x,i,z:inteiro

inicio

escreva('Digite o numero: ');

leia(x);

escreva('Digite o numero: ')

leia(i);

{oiiee} // pega essa linha

escreva('Resultado: '); // pega essa linha

fim. // pega essa linha

{oiiee} // pega essa linha

eu quero que pegue essas linhas

programa NomePrograma;

variaveis

x,i,z:inteiro

inicio

escreva('Digite o numero: ');

leia(x);

escreva('Digite o numero: ')

leia(i);

{oiiee} // pega só essa linha

escreva('Resultado: ');

fim.

{oiiee} // pega só essa linha

http://www.4shared.com/account/home.jsp#dir=HzMs8hp_

Link to comment
Share on other sites

O que o meu amigo disse happyhippyhoop funcionou , porem eu não estou conseguindo achar a chave { } eu fiz entre parêntese e funcionou perfeitamente veja o codigo:

        String c = this.textArea1.getText();
       Pattern p = Pattern.compile("\\((.*?)\\)",Pattern.DOTALL);
       Matcher matcher = p.matcher(c);
       while(matcher.find())
       {
           System.out.println("Achei:"+matcher.group(1));
       }

ele percorreu todo o textoArea e mostrou tudo que estava em parêntese mais eu estou querendo dentro de chave não estou conseguindo como fazer essa opção

Link to comment
Share on other sites

Pattern p = Pattern.compile("(\\{(\\w+)\\})+");  
  	 Matcher m = p.matcher(this.textArea1.getText());  
  	 while (m.find()) {  
  		 System.out.println(m.group(2));  
  	 }  

consegui porem os espaço não pode influir ! se eu dou espaço entre a chave digito algo ele não acha

Edited by Baderous
geshi
Link to comment
Share on other sites

Funcionou perfeitamente !

Tenho outra duvida ! eu estou fazendo um analisador léxico e eu estou quebrando string e comparando, o problema é que o meu identificador está pegando lixo tipo: veja o exemplo

programa NomePrograma; // Ele pega NomePrograma : Certo

variaveis

x,i,z:inteiro // Ele pega x i z : Certo

inicio

escreva('Digite o numero: '); // Ele pega Digite o numero : Incorreto

leia(x);

escreva('Digite o numero: ') // Ele pega Digite o numero : Incorreto

leia(i);

{oiiee} // oiiee: Incorreto

escreva('Resultado: '); // Resultado : Incorreto

fim.

{oiiee} // oiiee: Incorreto

Link to comment
Share on other sites

Então eu não posso fazer com biblioteca tenho que quebrar string por que é um trabalho

Eu armazenei os dados que estão dentro de aspa simples em um array e estou pensando em quebrar a String e depois fazer uma comparação no outro array e deletar, mais não estou conseguindo fazer isso

Link to comment
Share on other sites

Eu estou pensando em ler só as palavras declaradas veja

programa NomePrograma

x,i,z:inteiro

String data = this.textArea1.getText();  
           String regex = "programa";
           Pattern p = Pattern.compile(regex);  
           Matcher m = p.matcher(data);

           while (m.find())
           {  
               System.out.println(m.group());
           }

como faço para pegar a proxima palavra ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.