Manipulando String

6 respostas
Algebra

Quero retirar tudo que estiver entre chaves…

Ex: os termos são {huo, ping, mong, picolo} <8796>

quero um patner ou alguma função que retire exatamente tudo que estiver entre chaves.

Alguem pode me ajudar?

Atenciosamente

6 Respostas

Rodrigo_Sasaki

Não ficou nada bonito, rs :slight_smile: public static void main(String[] args){ String str = "{huo, ping, mong, picolo} <8796>"; Pattern p = Pattern.compile("\\{(.*?)\\}"); Matcher m = p.matcher(str); if(m.find()){ System.out.println(str.replaceAll(m.group(1), "")); } }

Algebra

Obrigado

jaboot

Cara, se puder usar, eu recomendo a StringUtils do apache-commons. Tá na versão 3.1

Tem um método chamado substringBetween que faz exatamente isso que você quer.

Abraços

O
public static void main(String[] args) {
      String multiplasOcorrencias = "{huo, ping, mong, picolo} <8796> {mong, picolo}";
      System.out.println(multiplasOcorrencias.replaceAll("\\{.+?\\}", "{}"));
      
      String umaOcorrencia = "{huo, ping, mong, picolo} <8796>";
      System.out.println(umaOcorrencia.replaceFirst("\\{.+\\}", "{}"));
   }
Rodrigo_Sasaki
ozix:
public static void main(String[] args) {
      String multiplasOcorrencias = "{huo, ping, mong, picolo} <8796> {mong, picolo}";
      System.out.println(multiplasOcorrencias.replaceAll("\\{.+?\\}", "{}"));
      
      String umaOcorrencia = "{huo, ping, mong, picolo} <8796>";
      System.out.println(umaOcorrencia.replaceFirst("\\{.+\\}", "{}"));
   }
Olha só.. sabia que tinha algo mais simples que eu não tinha conseguido pensar hehehe.

Achei muito melhor!

lina
digaoneves:
ozix:
public static void main(String[] args) {
      String multiplasOcorrencias = "{huo, ping, mong, picolo} <8796> {mong, picolo}";
      System.out.println(multiplasOcorrencias.replaceAll("\\{.+?\\}", "{}"));
      
      String umaOcorrencia = "{huo, ping, mong, picolo} <8796>";
      System.out.println(umaOcorrencia.replaceFirst("\\{.+\\}", "{}"));
   }
Olha só.. sabia que tinha algo mais simples que eu não tinha conseguido pensar hehehe.

Achei muito melhor!

Oi,

Realmente. Dá p/ fazer dessa forma ó:

String umaOcorrencia = "{huo, ping, mong, picolo} <8796>";  
System.out.println(umaOcorrencia.replaceAll("[^{}]", " "));
System.out.println(umaOcorrencia.replaceAll("[^{}]", ""));
System.out.println(umaOcorrencia.replaceAll("[^{}<0-9>]", ""));

Porém devido ao <8796> é passível de falha.

Tchauzin!

Criado 9 de outubro de 2012
Ultima resposta 10 de out. de 2012
Respostas 6
Participantes 5