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