Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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:我比较了两个字符串,但没有';我不认识它_Java_Arrays_String_Compare - Fatal编程技术网

Java:我比较了两个字符串,但没有';我不认识它

Java:我比较了两个字符串,但没有';我不认识它,java,arrays,string,compare,Java,Arrays,String,Compare,我有一个问题: 我编写这个函数是因为我需要获取字符串数组中特定字符串st的索引 static public int indicestring(String[] array, String st) { int ret = -1; for (int i = 0; i < array.length; i++){ if (st.equals(array[i])) { ret=i; break; }

我有一个问题:

我编写这个函数是因为我需要获取字符串数组中特定字符串
st
的索引

static public int indicestring(String[] array, String st) {
    int ret = -1;

    for (int i = 0; i < array.length; i++){
        if (st.equals(array[i])) {
            ret=i;
            break;
        }
    }

    return ret;
}
我得到了正确的号码

但当我这样做的时候:

String[] arcos2 = linea.split("-");//reading from a file and separating by "-"
String aux = arcos2[1];

System.out.println(arcos2[1]);
System.out.println(aux);

if (aux.equals(arcos2[1])) {
    System.out.println("Is equal 1");
}

if (aux.equals("ET2")) {
    System.out.println("Is equal 2");
}

if ("ET2".equals(aux)) {
    System.out.println("is equal 3");
}
前两次打印是
ET2
,但随后仅打印了3个ifs中的“等于1”。。。。问题是我有将近200个节点,比如“ET2”,只有3个节点失败,在第一个函数中给了我-1

我的问题是……我是否使用了错误的数组来保存和比较数据,因为如果aux=arcos2[1]=“ET2”,为什么“aux.equals”(“ET2”)或“arcos2[1].equals”(“ET2”)不起作用 ?您还可以建议尝试其他功能吗?(我尝试使用
compareTo()==0将equals更改为
,但这也不起作用,还建议进行修剪)

之前,我在比较两个数组时遇到了类似的错误,如下所示:

if(a[0] == b[0] && a[1] == b[1])
有一个案例显然是正确的,但被忽略了。。。 但当我把它改为:

if (Arrays.equals(a, b))

是否有类似的更改

您应该在代码中添加一个调试断点,并添加表达式监视,以确定问题的根本原因。

您能否进一步澄清您的帖子;我不确定您现在要问的是什么在比较字符串之前尝试修剪字符串,可能会出现一些前导或尾随空格,请这样做,如果(aux.equals(arcos2[1].trim()))修剪不起作用,请列出
aux
的长度,最好是其中的每个字符,分别作为
int
,这样您就可以看到所涉及的UTF-16代码单元。请提供您阅读的文件中的一些示例数据,以便更好地理解问题
if (Arrays.equals(a, b))