Как я могу получить в круглых скобках значение в строке

Как я могу получить в круглых скобках значение в строке.

String str= "United Arab Emirates Dirham (AED)"; 

Мне нужен только текст AED. благодаря

Solutions Collecting From Web of "Как я могу получить в круглых скобках значение в строке"

Компилирует и печатает «AED». Даже работает для нескольких круглых скобок:

 import java.util.regex.*; public class Main { public static void main (String[] args) { String example = "United Arab Emirates Dirham (AED)"; Matcher m = Pattern.compile("\\(([^)]+)\\)").matcher(example); while(m.find()) { System.out.println(m.group(1)); } } } 

Регулярное выражение означает:

  • \\( : символ (
  • ( : Начало матча
  • [ : Один из этих символов
  • ^ : Не следующий символ
  • ) : С предыдущим ^ , это означает «каждый символ кроме» )
  • + : Один из элементов из набора []
  • ) : Стоп-группа
  • \\) : буквальная закрывающая скобка

Я не могу понять, как разделить внутри круглых скобок. Вы бы высоко оценили

Когда вы разделяете, вы используете reg-ex, поэтому некоторые символы запрещены.

Я думаю, что вы ищете

 str = str.split("[\\(\\)]")[1]; 

Это разделилось бы на скобки. Он преобразуется в разделение на ( или ) . Вы используете double \\ для выхода из paranthese, который является зарезервированным символом для регулярных выражений.

Если вы хотите разделить на a . Вам нужно будет использовать split("\\.") Чтобы избежать точки.

Это работает…

 String str = "United Arab Emirates Dirham (AED)"; String answer = str.substring(str.indexOf("(")+1,str.indexOf(")")); 

Я могу предложить два способа:

 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args){ System.out.println(getParenthesesContent1("United Arab Emirates Dirham (AED)")); System.out.println(getParenthesesContent2("United Arab Emirates Dirham (AED)")); } public static String getParenthesesContent1(String str){ return str.substring(str.indexOf('(')+1,str.indexOf(')')); } public static String getParenthesesContent2(String str){ final Pattern pattern = Pattern.compile("^.*\\((.*)\\).*$"); final Matcher matcher = pattern.matcher(str); if (matcher.matches()){ return matcher.group(1); } else { return null; } } } 

Вы можете попробовать:

 String str = "United Arab Emirates Dirham (AED)"; int firstBracket = str.indexOf('('); String contentOfBrackets = str.substring(firstBracket + 1, str.indexOf(')', firstBracket)); 

Да, вы можете попробовать различные методы, такие как использование

  string.indexOf("("); 

Получить индекс и использовать

 string.substring(from, to) 

Используя регулярное выражение:

 String text = "United Arab Emirates Dirham (AED)"; Pattern pattern = Pattern.compile(".* \\(([AZ]+)\\)"); Matcher matcher = pattern.matcher(text); if (matcher.matches()) { System.out.println("found: " + matcher.group(1)); }