java封装工具类把字符串括号里面和括号外面的字符分别提取出来做为返回值返回
时间: 2024-01-26 14:04:34 浏览: 92
可以封装一个工具类来实现该功能,将括号内和括号外的字符作为返回值返回。下面是一个示例的工具类代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtils {
public static String[] extract(String str) {
String[] result = new String[2];
Pattern p = Pattern.compile("\\((.*?)\\)"); // 匹配括号内的内容
Matcher m = p.matcher(str);
if (m.find()) {
result[0] = m.group(1); // 括号内的内容
result[1] = str.substring(0, m.start()) + str.substring(m.end()); // 括号外的内容
} else {
result[0] = "";
result[1] = str;
}
return result;
}
}
```
代码解释:
1. 首先定义一个 `StringUtils` 工具类,它包含了一个 `extract` 方法,用于提取字符串中的括号内和括号外的字符。
2. 在 `extract` 方法中,定义一个长度为 2 的字符串数组 `result`,用于存储提取结果。
3. 使用正则表达式 `\\((.*?)\\)` 匹配括号内的内容。其中 `\\(` 和 `\\)` 表示匹配左右括号,`(.*?)` 表示匹配括号内的任意字符,`?` 表示非贪婪模式,即尽可能少的匹配字符。
4. 使用 `Matcher` 对象的 `find()` 方法查找匹配结果。
5. 如果找到了匹配结果,使用 `group(1)` 方法获取括号内的内容,并将其存储在 `result` 数组的第一个位置。
6. 使用 `start()` 和 `end()` 方法获取匹配结果的起始和结束位置,然后使用 `substring()` 方法获取括号外的内容,并将其存储在 `result` 数组的第二个位置。
7. 如果没有找到匹配结果,将括号内的内容置为空字符串,并将整个字符串存储在 `result` 数组的第二个位置。
8. 最后返回 `result` 数组。
阅读全文