1
任何可以幫助我使用java.util.Scanner類的人 我無法弄清楚如何使用分隔符方法。Java掃描器分隔符
輸入:teamA-teamB 4-5
輸出:teamA:teamB:4:-5
預期輸出:teamA:teamB:4:5
的我的代碼件:
public void readResult(){
String team1, team2;
int goals1, goals2;
Scanner scanner = new Scanner(System.in);
scanner.useDelimiter("\\s*-\\s*");
if (scanner.hasNext()){
team1 = scanner.next();
scanner.useDelimiter("\\d*-\\d*");
if(scanner.hasNext()){
team2 = scanner.next().trim();
scanner.useDelimiter("-");
if(scanner.hasNext()){
goals1 = scanner.nextInt();
scanner.useDelimiter("\\n");
if(scanner.hasNext()){
goals2 = scanner.nextInt();
System.out.println(team1 + ":" + team2 + ":" + goals1 + ":" + goals2);
scanner.close();
return;
}
}
}
}
scanner.close();
System.out.println("bad format");
}
謝謝,生病的正則表達式,分組讀了。你的例子完美地工作。 – Mss 2010-09-10 20:15:41
這是值得一讀,以確保您瞭解代碼,但它的一般要點是括號外(正則表達式)外正則表達式允許您提取匹配的某些部分供以後使用。作爲一個簡單的例子,正則表達式「hay(nee + dle)stack」與輸入「hayneeeeeeedlestack」'將存儲在第1組中''neeeeeeedle「'。 – 2010-09-10 20:31:00
另外我不確定你的確切輸入格式和錯誤處理要求,正則表達式可能需要調整(例如,它可能需要'(。+?)'而不是'(。*?)'來確保team1不是空)。 – 2010-09-10 20:31:49