下面是三个字符串。每个字符串在方括号内都有一些字符。我想将括号内的那些字符保存在其他变量中。有人可以建议这样做的可能方法吗?
fun randomAlphaNumericString(@IntRange(from = 1, to = 62) lenght: Int): String {
val alphaNumeric = ('a'..'z') + ('A'..'Z') + ('0'..'9')
return alphaNumeric.shuffled().take(lenght).joinToString("")
}
答案 0 :(得分:2)
您可以使用indexOf()。首先,找到'('和')'的索引,然后使用substring()。像这样:
int start = myString.indexOf('(');
int end = myString.indexOf(')');
String result = myString.substring(start+1, end);
//start+1 because we don't want the '('
答案 1 :(得分:2)
使用正则表达式:
String a = "MountainBlues(MB)";
Matcher matcher = Pattern.compile("\\((.+)\\)").matcher(a);
matcher.find();
System.out.println(matcher.group(1));
打印MB
答案 2 :(得分:1)
String insideBrackets(String input){
String result = "";
boolean bracket = false;
for(int i = 0: i < input.length(); i++){
if(!bracket && input.charAt(i) == '('){
bracket = true;
}
if(bracket && input.charAt(i) == ')'){
bracket = false;
}
if(bracket){
result += input.charAt(i);
}
}
return result;
}
我认为这应该可行。如果它不能立即告诉我
答案 3 :(得分:0)
您可以为此使用正则表达式:
Pattern p = Pattern.compile(".*(\\(.*\\)).*");
Matcher m = p.matcher("mytext(with)parentheses");
if(m.matches()) {
String inner = m.group(1); // now inner contains "(with)" (without quotes)
//...
}