以下是我要做的事情,我想从下面的wiki摘录中提取包含“3G”的每个句子
“有九代iPhone型号,每款都配有iOS的九个主要版本之一。最初的第一代iPhone是GSM手机和已建立的设计先例,例如在所有版本中都存在的按钮放置iPhone 3G增加了3G蜂窝网络功能和A-GPS定位功能,iPhone 3GS增加了更快的处理器和更高分辨率的摄像头,可以录制480p的视频。更高分辨率960×640。“
我知道我需要使用正则表达式和.split()方法。但是,如何循环获取3G的所有实例?
答案 0 :(得分:1)
您可以使用split
和contains
。
String[] sentArray = input.split("\\.");
List<String> output = new ArrayList<String>();
for (String sentence : sentArray) {
if (sentence.contains("3G")) {
output.add(sentence);
}
}
System.out.println(">>output=" + output);
答案 1 :(得分:0)
我会选择这样的事情:
import java.util.regex;
import java.util.ArrayList;
ArrayList<String> getThreeG(String text) {
String[] parts = text.split(".");
Pattern r = Pattern.compile("3G"); // Feel free to make it more complicated
ArrayList<String> relevant;
for (int i = 0; i < parts.length; i++) {
Matcher m = r.matcher(parts[i]);
if (m.find()) {
relevant.add(parts[i]);
}
}
return relevant;
}
如果您只查找具有“3G”的句子,请将示例中的正则表达式替换为"\\s3G\\s"
。