将IF仪链更改为开关表达

发布于 2025-02-02 20:59:53 字数 732 浏览 2 评论 0原文

我正在尝试将以下转换为 语句转换为switch> switch expression

public static int parseDays(String durationString) {
    String[] parts = durationString.split(" ");
    if (parts.length == 2) {
        return unitValueCalculation(parts[1], parts[0]);
    }
    else if (parts.length == 1)
    {
        if (parts[0].equalsIgnoreCase("once")) return 1;
    }
    return 0;
}

这就是我所拥有的:

 public static int parseDays(String durationString) {
       
        switch (durationString) {
            case durationString.split(" ").length  == 2 -> unitValueCalculation(parts[1], parts[2]);
        }

不过,我不确定该如何处理案件陈述。

任何想法都将不胜感激。

I'm trying to convert the below if statement into a switch expression.

public static int parseDays(String durationString) {
    String[] parts = durationString.split(" ");
    if (parts.length == 2) {
        return unitValueCalculation(parts[1], parts[0]);
    }
    else if (parts.length == 1)
    {
        if (parts[0].equalsIgnoreCase("once")) return 1;
    }
    return 0;
}

This is what I've got:

 public static int parseDays(String durationString) {
       
        switch (durationString) {
            case durationString.split(" ").length  == 2 -> unitValueCalculation(parts[1], parts[2]);
        }

I'm not sure what to do about the case statement, though.

Any ideas would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

櫻之舞 2025-02-09 20:59:53

您提供的代码可以制成 switch-expression 喜欢这样:

public static int parseDays(String durationString) {
    String[] parts = durationString.split(" ");
    
    return switch(parts.length) {
        case 2 -> unitValueCalculation(parts[1], parts[0]);
        case 1 -> parts[0].equalsIgnoreCase("once") ? 1 : 0;
        default -> 0;
    };
}

parts数组的长度应在括号内使用() 开关。并且每个特定的长度(12)应用作 case-contantant

默认案例涵盖了所有未指定的数组大小。

The code you've provided can be made into a switch-expression like that:

public static int parseDays(String durationString) {
    String[] parts = durationString.split(" ");
    
    return switch(parts.length) {
        case 2 -> unitValueCalculation(parts[1], parts[0]);
        case 1 -> parts[0].equalsIgnoreCase("once") ? 1 : 0;
        default -> 0;
    };
}

The length of the parts array should be used inside the parentheses () of the switch. And each particular length (1 and 2) should be used as a case-constant.

The default case covers all unspecified array sizes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文