Asterisco (*) no Java?

Olá. Alguém sabe me dizer se existe algo como o operador * no Java? Exemplo: Eu preciso fazer um replace em tudo que está entre aspas. Então eu pensei em algo como: replace("",“para substituir”), mas é óbvio que isso vai dar um replace só no caractere "". Mas se alguém sabe se tem como fazer isso, fala aí.

O operador * (asterisco), no java, é responsável apenas por multiplicação.
Conforme a documentação, o método replaceAll public String replaceAll(String regex, String replacement) permite o uso de regex. Vai de ti pesquisar uma regular expression que permita referir-se a todos os caracteres, como acredita que o * faça

Eu criei o tópico para saber se alguém aqui sabe, porque eu não encontrei.

Dá uma estudada em regex que tu vai manjar como é que faz essas substituições. Eu não sei porque até hoje ainda se herda essas regex horríveis do unix/perl, mas é o que temos até alguém inventar algo mais intuitivo.

Quando estiver estudando, isso aqui pode ser bem útil: https://regex101.com/. É um “debugger” de regex. Você escreve a expressão na parte de cima e o texto na parte de baixo, e ele destaca os matches no texto, com cores, e tem explicações nas laterais.

Um tutorial muito legal e intuitivo (em inlgês) sobre regex: https://regexone.com/

2 curtidas

Thallysson,

Você tem algum caso real, tipo se tentou fazer algum código que podemos ajudar?

Eu não tenho nenhum código feito ainda. Mas o exemplo que eu dei lá no início (substituir tudo que estiver entre aspas) é o que eu queria fazer.

Se eu entendi direito, você quer fazer algo como:
String x = "Esta é uma frase"; x = x.replace("*", "Isso"); System.out.println(x);//Vai imprimir 'Isso'
Certo?
Se for isso, por quê complicar? Faz direto

String x = "Esta é uma frase"; x = "Isso"; System.out.println(x);//Vai imprimir 'Isso'

Cara. Eu preciso ler o texto de uma TextArea no JavaFX e substituir tudo que está entre aspas por outra coisa.

Assim ó:

  1. Vai no https://regex101.com/;
  2. Digita no Regular Expression: (".*");
  3. Embaixo, onde tem “substitution”, coloca o que tu quer substituir.

Experimenta com as regex ali.

2 curtidas

Valeu. Eu gerei o código e funcionou perfeitamente. Essa ferramenta vai ser bastante útil pra mim em outras ocasiões, valeu pela dica.

final String regex = "(\".*\")";
final String string = "Qualquer \"coisa\"";
final String subst = "teste";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);

final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
1 curtida