문자열 비교 (색인) [중복]

Jan 12 2021

예를 들어 두 배열을 정확한 인덱스와 비교하는 방법

String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};

나는 이것을 시도했다

for (int i = 0; i < test1.length; i++) {
for (int j =  i; j < test2.length; j++) if (i==j)  if (i == j && test2[j] == "" ) {do stuff}
} 

// but always give true

이제 비교가 test1의 인덱스 0에서 시작되면 test2의 인덱스 0 과만 비교되어야합니다. 빈 인덱스 (예 : test1 인덱스 3과 관련된 test2의 인덱스 3)를 찾고 몇 가지 작업을 수행합니다.

많이 읽었지만 어려움이 있습니다. 미리 감사드립니다.

답변

Pieter12345 Jan 12 2021 at 22:04

내가 이해하는 바에 따르면 크기가 같지 않을 수있는 두 배열을 비교하고 그렇지 않은 경우 가장 짧은 크기까지만 비교하고 싶습니까? 다음과 같이 할 수 있습니다.

boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
    if(!test1[i].equals(test2[i])) {
        equals = false;
        break;
    }
}
Spectric Jan 12 2021 at 22:02

.equals()문자열을 비교하는 데 사용 합니다. ==프리미티브를 비교하는 데 사용됩니다.

2 개의 루프도 필요하지 않습니다.

for(int i = 0; i < test1.length; i++){
    if(test1[i].equals("")||test2[i].equals(""){
        //Do something
    }
}
pabloespinosa12 Jan 12 2021 at 22:03

Java에서 문자열을 비교할 때 객체이기 때문에 EQUALS를 사용해야합니다. 또한 두 개의 루프에는 포인트가 없습니다. 이것을 시도하십시오 :

for (int i = 0; i < test1.length; i++) {
    if (test2[i].equals("") ) {do stuff}
}
NehaK Jan 12 2021 at 22:52

Arrays.java의 deepEquals () 사용 :

  import java.util.Arrays;

  String[][] s1 =
        {
            {"A", "B", "C"},
            {"X", "Y", "Z"}
        };
 
 String[][] s2 =
        {
            {"A", "B", "C"},
            {"X", "Y", "Z"}
        };
 
 System.out.println("deepEquals() returns " + Arrays.deepEquals(s1, s2));

출력 : deepEquals ()는 true를 반환합니다.