我想知道是否有一种更优雅的方式来编写带有很多||的if语句在Java中。
我给字母赋予了不同的值:

A,O,I,B,T,S,M,N -> 1
C,D,F,G         -> 5
W,Y,Z,H,Q       -> 10


所以,我想检查一个给定的字母,例如是否等于第二组之一,得到5。
现在,我正在像这样检查:

String value;
if (getLetter().equals("Α")|| getLetter().equals("O") ||
    getLetter().equals("I") || getLetter().equals("B") ||
    getLetter().equals("T") || getLetter().equals("S") ||
    getLetter().equals("N") || getLetter().equals("N"))
value = "1";


有更好的方法吗?

最佳答案

String letter = getLetter();
if ("AOIBTSMN".contains(letter))
    value = "1";
else if ("CDFG".contains(letter))
    value = "5";
else if ("WYZHQ".contains(letter))
    value = "10";


不是最佳的,而是简短,清晰和不言自明的。

08-05 06:37