"pegar" as strings que estão entre colchetes - duvida

Oi gente…

Estou com a seguinte dúvida:

Eu preciso pegar as strings dentro dos colchetes:

por exemplo: Show [specialties] of a [health unit]

preciso pegar specialties e health unit…

Eu fiz o seguinte método:

[code]public static String quebraString(String s) {

	int indice_abre= s.indexOf('[');
	int indice_fecha= s.lastIndexOf(']');
	String conteudo= s.substring(indice_abre + 1, indice_fecha);		
	return conteudo;
}[/code]

Sendo que esse método está pegando somente a primeira ocorrencia entre colchetes, por exemplo: Select [unit], ele péga o unit.

Alguém poderia me ajudar??.. a ajeitar esse método para ele pegar todas as strings entre colchetes e não só a primeira o ocorrência?

abs…e obrigado!!!

Cara fiz usando regex:

public static void main(String...strings){ String data = "[ffff] [gggg]"; String regex = "([\w])+"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(data); while (m.find()) { System.out.println(m.group()); } }

Valews

Voce pode usar expressao regular como citado pelo nosso colega, ou pode usar um laco,com a seguinte instruçao:

int i = 0;
while(i < s.length()){


}

Eu particulamente,acho a expressção regular mais elegante…

Oi Gente,

Não conhecia a utilização com expressões regulares. Mas pelo que vi, serviu para esse me ucaso, e vai servir para outros da minha aplicação :lol: .

Obrigado pela ajuda de vcs :!: :!: :!: :!:

bjuss :!: :!: :!: :!: :!: :!:

lumedeiros,

Melhorei a regex. Desse jeito vai ficar mais preciso:

public static void main(String...strings){ String data = "[ffff] ddd dsds [dfdf] [gggg]"; String regex = "(\[(\w+)\])+"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(data); while (m.find()) { System.out.println(m.group(2)); } }

Regex é muito importante.

Alysson Bandeira