所以这是我目前的代码;

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;


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

最佳答案

['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;
}


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

08-25 01:48