2 回答

TA貢獻1851條經驗 獲得超3個贊
給定輸入,以下將提取每行的數字。
Pattern pattern = Pattern.compile("\\d+");
while (in.hasNext())
{
String str = in.nextLine();
Matcher m = pattern.matcher(str);
while (m.find())
{
//Change this to add to add to an array
System.out.println(m.group());
}
}

TA貢獻1831條經驗 獲得超10個贊
鑒于您的輸入有限,我僅使用純掃描儀界面就做到了:
public class Scrap {
private final static String HOUR_PATTERN = "<td>\\d{2}-\\d{2}</td>";
private final static String TD_DELIMETER = "\\s|<|>";
public static void main(String[] args) {
Scanner in = new Scanner(Scrap.class.getResourceAsStream("/input"));
List<Integer> res = new ArrayList<>();
while (in.hasNext()) {
if (!in.hasNext(HOUR_PATTERN)) {
System.out.println(in.next());
continue;
}
String found = in.next(HOUR_PATTERN);
Pattern delim = in.delimiter();
in.useDelimiter(TD_DELIMETER);
for (int i = 0; i < 8; i++) {// you wrote it is going to be 8 entries
while (in.hasNext()) {
if (in.hasNextInt()) {
res.add(in.nextInt());
} else {
System.out.println(in.next());
}
}
}
in.useDelimiter(delim);
}
System.out.println(res);
}
}
給定輸入
blelblebll
<td>00-01</td>
<td align="right"> 11872</td>
<td align="right"> 12146</td>
<td align="right"> 12861</td>
<td align="right"> 12561</td>
<td align="right"> 13493</td>
<td align="right"> 13386</td>
<td align="right"> 12732</td>
<td align="right"> <b>12249</b></td>
<td>00-01</td>
<td align="right"> 11872</td>
<td align="right"> 12146</td>
<td align="right"> 12861</td>
<td align="right"> 12561</td>
<td align="right"> 13493</td>
<td align="right"> 13386</td>
<td align="right"> 12732</td>
<td align="right"> <b>12249</b></td>
<td>00-01</td>
<td align="right"> 11872</td>
<td align="right"> 12146</td>
<td align="right"> 12861</td>
<td align="right"> 12561</td>
<td align="right"> 13493</td>
<td align="right"> 13386</td>
<td align="right"> 12732</td>
<td align="right"> <b>12249</b></td>
<td>00-01</td>
<td align="right"> 11872</td>
<td align="right"> 12146</td>
<td align="right"> 12861</td>
<td align="right"> 12561</td>
<td align="right"> 13493</td>
<td align="right"> 13386</td>
<td align="right"> 12732</td>
<td align="right"> <b>12249</b></td>
生產
[11872, 12146, 12861, 12561, 13493, 13386, 12732, 12249, 11872, 12146, 12861, 12561, 13493, 13386, 12732, 12249, 11872, 12146, 12861, 12561, 13493, 13386, 12732, 12249, 11872, 12146, 12861, 12561, 13493, 13386, 12732, 12249]
它基于您的輸入示例,因此它現在可能適用于實時標記。
或者,您可以將<.*?>其用作分隔符并僅關注數字模式。
添加回答
舉報