Java中equals()方法的逻辑运算符更优雅的语法?

uba*_*jea 2 java syntax equals

我有一些像这样的代码:

if (input.equals("north") || input.equals("n")) { direction = Cardinals.NORTH; }
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以使用更简洁的语法,如下所示:

if (input.equals("north" || "n") { direction = Cardinals.NORTH; }
Run Code Online (Sandbox Code Playgroud)

我知道这不起作用,但我希望有一些相同的东西?

hie*_*tfu 5

从Java 7开始并假设input是一个String,您可以像这样切换字符串文字

switch(input) {
case "n":
case "north":
    direction = Cardinals.NORTH; 
    break;
case "s":
...
}
Run Code Online (Sandbox Code Playgroud)

等等.很可读!

编辑:正如在评论中提出@DaoWen,如果您提取此开关到它自己的方法(比如findCardinal(input)),你可以删除break;,只是return正确的Cardinal,这将导致一个不错的一行在您需要的方向,如下所示:direction = findCardinal(input);.

  • 如果你可以将这部分分解为它自己的方法,那么你可以使用`return Cardinals.NORTH`,从而避免需要`break`语句. (3认同)