我正在创建一个方法,其中用户输入必须键入 A/B 才能获得返回。我如何使我的代码不区分大小写以使其正常工作?
String examcode (String code) {
if (code.compareToIgnoreCase("A")) {
EXAM_NAME = "Subject A";
}
else if (code.compareToIgnoreCase("B")) {
EXAM_NAME = "Subject B";
}
else {
EXAM_NAME = "no code";
}
return EXAM_NAME;
}
最佳答案
使用equalsIgnoreCase()
,而不是compareToIgnoreCase()
。
if (code.equalsIgnoreCase("A")) {
EXAM_NAME = "Subject A";
} //...
如果要使用compareToIgnoreCase()
检查相等性,则需要将结果与0
进行比较:
if (code.compareToIgnoreCase("A") == 0) {
//...
就像任何其他 compareTo
方法一样。但在这里使用它没有任何优势。
编辑:
整个方法的替代方法可能是使用不区分大小写的映射。像这样的事情:
Map<String, String> subjects = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
subjects.put("A", "Subject A");
subjects.put("B", "Subject B");
//...
String subjectName = subjects.get(code);
if ( subjectName == null ) {
subjectName = "no code";
}
或者,您也可以使用普通的区分大小写的映射,并在执行映射操作之前将所有键转换为小写。
关于Java 比较忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337001/