Экспортировать все фигурные скобки в строке в массив
Пример :
String = "(a(b[}7cv)))"
массив должен выглядеть так: ["(","(","[","}",")",")",")"]
моя попытка:
if(s.charAt(i) == "(" ){
//add to array}
2 ответа
Вы можете просто найти их с помощью регулярных выражений и добавить их в список
public static void main(String[] args) {
String foo = "(a(b[}7cv)))";
List<String> allMatches = new ArrayList<String>();
Matcher m = Pattern.compile("\\W")
.matcher(foo);
while (m.find()) {
allMatches.add(m.group());
}
System.out.println(allMatches);
}
Если вам нужны только скобки, вы можете взять "[(){}\\]\\[]"
в качестве регулярного выражения для Pattern.compile
Как насчет получения не буквенно-цифровой и добавить в список
String s = "(a(b[}7cv)))";
Pattern p = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(s);
var list = new ArrayList<String>();
while (m.find()) {
list.add(String.valueOf(s.charAt(m.start())));
}
System.out.println(Arrays.toString(list.toArray()));
Выход
[(, (, [, }, ), ), )]