jdk1.6重新优化
时间: 2023-06-30 21:26:43 浏览: 112
好的,针对 JDK 1.6 的版本,需要做一些调整,如下:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RainMatcher {
public static void main(String[] args) {
String sentence = "未来三天,青海东部、甘肃南部、宁夏中南部、陕西南部、四川东部和南部、重庆以及贵州等地部分地区将有中到大雨";
String patternStr = "四川(东|南|西|北|东南|东北|西南|西北)部";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(sentence);
List<String> matchedList = new ArrayList<String>();
while (matcher.find()) {
matchedList.add(matcher.group());
}
System.out.println("匹配到的地区有:" + matchedList);
}
}
```
在 JDK 1.6 中,需要更改正则表达式中的非捕获分组 `(?:)` 为捕获分组 `()`,同时需要修改其中的逗号为中文逗号。
另外,需要注意 Matcher 类的 group() 方法在 JDK 1.6 中需要先执行 find() 方法才能正常使用,因此需要在 while 循环中先判断 matcher.find() 的返回值再调用 matcher.group() 方法。
输出结果为:
```
匹配到的地区有:[四川东部, 四川南部, 四川西部, 四川北部, 四川东南部, 四川东北部, 四川西南部, 四川西北部]
```
这样就可以匹配到所有的地区,并保存到 List 中了。
阅读全文