37

자, 배열이 { "tube", "are", "fun"}로 채워져 있다고 가정하고 JTextField를 가지고 있고 그 명령 중 하나를 입력하면 무언가를 수행하고 " 명령어를 찾을수 없음".

나는 자바 문서를보고 노력했지만, 내가 얻는 것은 질문과 물건처럼 싶지 않은 것들이다. 그래서, 어떻게이 일을 하는가? 나는 "배열로"함수가 있다는 것을 알고 있지만 두 가지를 결합하는 것은 너무 좋지 않습니다.

감사.

여기 내가 지금까지 가지고있는 것이있다.

String[] dan = {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"};
boolean contains = dan.contains(say.getText());

하지만 dan.contains에서 기호를 찾을 수 없습니다.

5 답변


62

이것이 당신이 찾고있는 것입니다 :

List<String> dan = Arrays.asList("Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue");

boolean contains = dan.contains(say.getText());

목록이있는 경우되풀이되지 않는값을 사용하고Set<String>같은 것을 가지고있다.포함하다방법


  • 네! 내 예를 보아라. :디 - nn2
  • 배열은 집합이 아니기 때문에 - Pablo Fernandez
  • @ 단 - BZZZT - 당신이 호출하려고합니다.contains배열에서Set!!! - Stephen C
  • SIMPSO- 고맙다! : D 조 Tahnks 스티븐. 신기한 실수. - nn2

31

String[] a= {"tube", "are", "fun"};
Arrays.asList(a).contains("any");


  • 고마워 ... 좋은 예 - Antonio
  • 이것은 제가 찾고 있던 것입니다. 간단! - ether_joe

7

용도Arrays.asList()배열을List<String>,contains()방법:

Arrays.asList(dan).contains(say.getText())


3

이것은 Java 8에서 Stream을 사용하여 수행 할 수 있습니다.

import java.util.stream.Stream;

String[] stringList = {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"};

boolean contains = Stream.of(stringList).anyMatch(x -> x.equals(say.getText());


  • 이것이 최고의 대답입니다. 나머지는 실패합니다. 왜냐하면asList매개 변수화되지 않은 일반을 반환합니다. - John Henckel

1

배열의 값을 정렬 된 순서로 구성 할 수 있으면 다음을 사용할 수 있습니다.Arrays.binarySearch(). 그렇지 않으면 루프와 선형 검색을 작성해야합니다. 배열에 커다란 (몇 개가 넘는) 문자열을 가질 계획이라면 Set을 대신 사용해보십시오.


  • 내가 배열이 영구적 일 것이고 주문에서 전혀 변하지 않을 거라고 말하면 중요 할까? 보다 쉬운 방법이 있을까요? - nn2
  • @ 단 - 그의 첫 번째 문장이 그 대답이라고 생각합니다. 직접 문자열을 정렬하는 방법을 알고 있습니까? - Stephen C
  • @ 짐,이 대답은 정확하지 않습니다. 문서#binarySearch" 배열에 서로 비교할 수없는 요소 (예 : 문자열 및 정수)가 포함되어있는 경우 해당 요소의 자연 순서에 따라 정렬 될 수 없으므로 결과는 정의되지 않습니다. "하지 마라용도binarySearch...에Integer또는String또는 많아야 부분적인 순서를 가질 수있는 요소 - Aleksandar Dimitrov

연결된 질문


관련된 질문

최근 질문