代码之家  ›  专栏  ›  技术社区  ›  Rence

JavaDayFoWo转换日名称(字符串)到日数

  •  3
  • Rence  · 技术社区  · 8 年前

    我正在尝试将工作日的字符串值转换为数字。

    我在调查 Enum DayOfWeek ( https://docs.oracle.com/javase/8/docs/api/java/time/DayOfWeek.html ),但它的工作方式与我的预期不符。

    代码

    String n = "MONDAY";
    
    System.out.println(n); //prints MONDAY
    System.out.println(DayOfWeek.valueOf(n)); //also prints MONDAY - should print 1
    

    如何从字符串中获取相应的数字?

    2 回复  |  直到 8 年前
        1
  •  6
  •   Basil Bourque    7 年前

    DayOfWeek

    这里需要得到星期几的int值。你需要用的东西 DayOfWeek.valueOf DayOfWeek::getValue() . 如果字符串输入使用星期几的英文全名,则此操作有效,如在 DayOfWeek 枚举对象。

     System.out.println(DayOfWeek.valueOf(n).getValue());
    

    它返回星期一,从1(星期一)到7(星期日)。

        2
  •  4
  •   Michael    8 年前

    at the JavaDoc . 使用 getValue :

    获取星期几的int值。

    值的编号如下 ISO-8601标准,从1(星期一)到7(星期日)。

    以你为例

    System.out.println(DayOfWeek.valueOf(n).getValue());
    

    DayOfWeek 是不重写的枚举 toString ,因此默认行为是打印枚举常量的名称,即 'MONDAY' . 这就是你看到这种行为的原因。

    推荐文章