当前位置: 首页 > 知识库问答 >
问题:

重构该方法以降低其认知复杂度

宋育
2023-03-14

我在重构这部分代码时遇到了问题。如何降低该代码的认知复杂性

if (fieldseparator != null && !fieldseparator.isEmpty()) {
        if (fieldseparator.equals("\\t")) {
            delim = '\t';
        } else {
            // handling unicode separator
            Integer i = Ints.tryParse(fieldseparator);
            if (i != null) {
                fieldseparator = String.valueOf(Character.toChars(i));
                delim = fieldseparator.charAt(0);
            } else {
                delim = fieldseparator.charAt(0);
            }
        }
    }

共有1个答案

蒯安平
2023-03-14
public static Character getDelim(String fieldseparator, Character defaultDelim) {
    if (isNotEmpty(fieldseparator)) {
        return fieldseparator.equals("\\t") ? '\t' : getFromUnicode(fieldseparator);
    }
    return defaultDelim;
}

private static Character getFromUnicode(String fieldseparator) {
    Integer i = Ints.tryParse(fieldseparator);
    return i != null ? String.valueOf(Character.toChars(i)).charAt(0) : fieldseparator.charAt(0);
}

private static boolean isNotEmpty(String fieldseparator) {
    return fieldseparator != null && !fieldseparator.isEmpty();
}
 类似资料: