我有一个继续打印行的流,如下所示:
11:19:54 AM CPU %user %nice %system %iowait %steal %idle
11:19:55 AM all 0.00 0.00 1.00 0.00 0.00 99.00
Average: all 0.00 0.00 1.00 0.00 0.00 99.00
11:19:55 AM CPU %user %nice %system %iowait %steal %idle
11:19:56 AM all 0.00 0.00 1.00 0.00 0.00 99.00
Average: all 0.00 0.00 1.00 0.00 0.00 99.00
....等等
Java代码是:
public final static String REGEX_STARTS_WITH_TIME = "[0-9]{2}:[0-9]{2}:[0-9]{2}\\s+[A-Z]{2}\\s";
public final static String REGEX = REGEX_STARTS_WITH_TIME + "CPU\\s+%usr\\s";
String line;
try {
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
line.matches(REGEX);
//Here I want to read the next line by skipping the header.
}
br.close();
} catch (IOException e) {
......
}
我想跳过标题,只读下一行。
答案 0 :(得分:1)
您可以使用string#contains("CPU")
检查该行是否包含该子字符串。如果是,(那么它是标题),只需在循环中调用continue
。
旁注:这也可以使用indexOf()
来实现。我在这里没有看到任何使用正则表达式的理由
。