如何在字符串中输入括号内的值.
String str= "United Arab Emirates Dirham (AED)";
Run Code Online (Sandbox Code Playgroud)
我只需要AED文本.谢谢
Jan*_*sen 89
编译并打印"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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
正则表达式意味着:
\\(:性格 ((:开始比赛组[:其中一个角色^:不是以下字符):与前一个^,这意味着"每个字符除外)"+:[]集合中的一个或多个东西):停止匹配组\\):字面意义关闭Dar*_*ren 23
我无法理解如何在括号内分开.你会高度赞赏吗?
当你分裂时你使用的是reg-ex,因此禁止使用某些字符.
我认为你在寻找的是
str = str.split("[\\(\\)]")[1];
Run Code Online (Sandbox Code Playgroud)
这将通过括号分开.它转化为由(或分裂).你使用double \\来转义paranthese,这是正则表达式的保留字符.
如果你想用a分割,.你也必须使用它split("\\.")来逃避点.
xag*_*gyg 13
这有效......
String str = "United Arab Emirates Dirham (AED)";
String answer = str.substring(str.indexOf("(")+1,str.indexOf(")"));
Run Code Online (Sandbox Code Playgroud)
我知道这是4年前问过的,但是对于任何一个有相同/相似问题的人(就像我一样),有比使用正则表达式更简单的方法:
String result = StringUtils.substringBetween(str, "(", ")");
Run Code Online (Sandbox Code Playgroud)
在您的示例中,result将返回为“ AED”。我建议将StringUtils库用于各种(相对简单的)字符串操作。它会自动处理诸如空输入之类的事情,这很方便。
substringBetween()的文档:https : //commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#substringBetween-java.lang.String-java.lang.String- java.lang.String-
此函数还有其他两个版本,具体取决于开始和结束定界符是否相同,以及定界符是否在目标字符串中多次出现。
| 归档时间: |
|
| 查看次数: |
73112 次 |
| 最近记录: |