2016-12-13 6 views
0

문자열에 다른 문자열이 포함되어 있는지 확인하고 싶지만 대소 문자를 구분하지 않습니다.문자열에 대소 문자를 구분하지 않고 다른 문자열이 포함되어 있는지 확인할 수 있습니까?

예를 들어 "카비르"는 "닥터 카비르의 집"에 들어 있습니다. 이제 자본 K를 가진 "Kabir"는 "Dr.kabir의 집"에서 찾아야합니다. 이 문장에 공백이 있거나 없거나

포함되어 있습니다. 하지만 contains()는 대소 문자를 구분합니다. 또한 equalsIgnoreCase()를 사용하려고했지만 유용하지 않습니다.

 for (int i = 0; i < itemsList.size(); i++) { 
     if (matching.contains(itemsList.get(i))) { 
      item = itemsList.get(i).trim(); 
      break; 
     } 
    } 

문자열을 대문자로 지정하여 시도했지만 모든 문자를 대문자로 검사합니다. 초기 편지 만 자본인지 확인하고 싶습니다.

for (int i = 0; i < itemsList.size(); i++) { 
     if (matching.contains(itemsList.get(i))) { 
      item = itemsList.get(i).trim(); 
      break; 
     } 
    } 

아무도 도와 줄 수 있습니까? 고마워 ..

EDIT : 문자열에서 "kabir"을 어떻게 나눠야할까요?

+1

중복 내 생각에, http://stackoverflow.com/questions/14972299/how-to- use-contains-and-equalalscase-in-string – msagala25

답변

4

그냥 두 문자열을 소문자 다음 contains() 사용이의

for (int i = 0; i < itemsList.size(); i++) { 
    if (matching.toLowerCase().contains(itemsList.get(i).toLowerCase())) { 
     item = itemsList.get(i).trim(); 
     break; 
    } 
} 
+0

나는 이것을 시도했다. 그러나 이것은 모든 소문자 또는 대문자를 검사합니다. 그러나 한 단어가 대문자이고 다른 단어가 "카비르 (Kabir)"처럼 작 으면 어떨까요? – Sid

+1

@Sid 다른 해결책뿐 아니라 다른 해결책도 _both_ 문자열을 소문자로 변환하므로 대소 문자는 중요하지 않으며 글자 만 사용됩니다. 이게 말이 돼? –

+0

추가로 String은 변경 불가능합니다. 그래서 소문자 값을 지정하지 않으면'matching' 문자열을 변경하지 않습니다. – msagala25

3

.contains() 방법을 사용하기 전에 양쪽 문자열을 대문자 또는 소문자로 변환하기 만하면됩니다. 예를 들어

:

if (str1.toLowerCase().contains(str2.toLowerCase())) 
    //do whatever 
+0

나는 이것을 시도했다. 그러나 이것은 모든 소문자 또는 대문자를 검사합니다. 그러나 한 단어가 대문자이고 다른 단어가 "카비르 (Kabir)"처럼 작 으면 어떨까요? – Sid

+0

@Sid 일치를 수행하기 전에 두 문자열을 모두 변환하기 때문에 여전히 작동합니다. 따라서 어느 문자열에도 검사 전에 대문자가 포함되지 않습니다. – user3437460

2

두 문자열이 낮은하게 (또는 위)의 경우는

String one = "test"; 
String two = "TESTY"; 

if (two.toLowerCase().contains (one.toLowerCase())) { 
    System.out.println ("Yep"); 
} 
else { 
    System.out.println ("Nope"); 
} 
+0

나는 이것을 시도했다. 그러나 이것은 모든 소문자 또는 대문자를 검사합니다. 그러나 한 단어가 대문자이고 다른 단어가 "카비르 (Kabir)"처럼 작 으면 어떨까요? – Sid

+0

이 두 단어 소문자를하고있다 –