gpt4 book ai didi

java - 如何在 Java 中使用 Scanner.useDelimiter

转载 作者:行者123 更新时间:2023-12-01 05:53:56 25 4
gpt4 key购买 nike

有人可以帮助我使用 java.util.Scanner 类吗?
我不知道到底如何使用分隔符方法。

输入: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");
}

最佳答案

我个人会使用正则表达式和组匹配来完成此操作,但如果您要使用扫描仪,不要专注于使用分隔符,请使用 hasNext(String) next(String) 方法来匹配和检索下一个模式。

带分组示例的正则表达式:

    String input  ="teamA-teamB 4-5";
String team1, team2;
int goals1, goals2;

Matcher matcher =
Pattern.compile("(.*?)\\s*-\\s*(.*?)\\s*(\\d*)\\s*-\\s*(\\d*)")
.matcher(input);
if ( matcher.matches() ) {
team1 = matcher.group(1);
team2 = matcher.group(2);
goals1 = Integer.parseInt(matcher.group(3));
goals2 = Integer.parseInt(matcher.group(4));
System.out.println(team1 + ":" + team2 + ":" + goals1 + ":" + goals2);
}

关于java - 如何在 Java 中使用 Scanner.useDelimiter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com