简化代码-检查字符串中的第一个字符以匹配字符列表

goa*_*oat 1 java string boolean

所以这是我目前的代码;

public static boolean isValidPiecePlacement(String piecePlacementString) {

    if (piecePlacementString.charAt(0) == 'A' || piecePlacementString.charAt(0) == 'B' ||
    piecePlacementString.charAt(0) == 'C' || piecePlacementString.charAt(0) == 'D' ||
    piecePlacementString.charAt(0) == 'E' || piecePlacementString.charAt(0) == 'F' ||
    piecePlacementString.charAt(0) == 'G'){
        return true;
    }


    return false;
Run Code Online (Sandbox Code Playgroud)

它工作正常,但效率不高。我想知道是否有人知道这是一种更有效的方法?该代码仅检查第一个字符是否正确,即“ A-G”中的字符。它还必须返回true。谢谢

And*_*lko 8

['A', 'G'] 是一个字符范围,因此可以简化为

public static boolean isValidPiecePlacement(String piecePlacementString) {
    if (piecePlacementString == null || piecePlacementString.length() == 0) {
        return false;
    }

    final char firstChar = piecePlacementString.charAt(0);

    if (firstChar >= 'A' && firstChar <= 'G') {
        // make other comparisons
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

char是整数类型,因此数值比较运算符喜欢>=<=可以应用于其变量/文字。