Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CompareToIgnoreCase_Java_String_String Comparison - Fatal编程技术网

Java CompareToIgnoreCase

Java CompareToIgnoreCase,java,string,string-comparison,Java,String,String Comparison,我正在创建一个方法,用户输入必须键入a/B才能获得返回。如何使代码不区分大小写才能正常工作 String examcode (String code) { if (code.compareToIgnoreCase("A")) { EXAM_NAME = "Subject A"; } else if (code.compareToIgnoreCase("B")) { EXAM_NAME = "Subject B"; } e

我正在创建一个方法,用户输入必须键入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()
,而不是
compareTignoreCase()

如果要使用
compareToIgnoreCase()
检查相等性,则需要将结果与
0
进行比较:

if (code.compareToIgnoreCase("A") == 0) {
    //...
就像任何其他
比较方法一样。但是在这里使用它没有任何好处

编辑: 替代整个方法的另一种方法可能是使用不区分大小写的映射。大概是这样的:

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";
}
Map subjects=newtreemap(String.CASE不区分大小写顺序);
主体。将(“A”、“主体A”);
主体。将(“B”、“主体B”);
//...
字符串subjectName=subjects.get(代码);
if(subjectName==null){
subjectName=“无代码”;
}
或者,您也可以使用普通的区分大小写的映射,并在进行映射操作之前将所有键转换为小写。

只需使用该方法即可- 它返回一个
布尔值
,并根据您要查找的内容执行任务


if(code.compareTignoreCase(“A”)
无效,因为
compareTignoreCase
返回
int
您需要的是
String#equalsIgnoreCase(String)
返回布尔值。

在比较之前使用String.toLowerCase()(或String.toUpperCase())

if (code.toLowerCase().equals("a")) {
    EXAM_NAME = "Subject A";
}
请注意,与所有字符串方法一样,code.toLowerCase不会更改存储在“code”中的字符串,而是以小写形式返回“code”值的副本

阅读这篇文章会为你提供答案。谷歌本来会把这个问题提出来的

  • 使用返回布尔值的
    code.equalsIgnoreCase(“您的字符串”)
    ,或

  • 使用
    code.compareTignoreCase(“您的字符串”)==0
    compareTignoreCase
    提供了一种确定两个字符串的“顺序”的方法。再一次,享受javadoc


使用相同的代码,但使用相等的SignoreCase(字符串)而不是CompareTignoreCase(字符串)

if (code.toLowerCase().equals("a")) {
    EXAM_NAME = "Subject A";
}