Экспортировать все фигурные скобки в строке в массив

Пример :

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()));

Выход

[(, (, [, }, ), ), )]
Другие вопросы по тегам