답변을 찾았습니다. 모든 아이디어를 가져 주셔서 감사합니다. 당신이 SortedSet
의 범위 뷰 작업으로 을 볼 때 문자열 + "\0"
의 관용구의 사용
한
, 특히, 문자열의
후계자을 찾기 위해 그것을 사용하는 것입니다. 그 범위의 뷰 작업 (
subSet()
,
headSet()
및
tailSet()
)는
반개 간격을 제공하고
는 간격을 폐쇄 구성하는 문자열의 후임이 필요할 수 있기 때문에
이러한 후속 필요하다. 이것은 Java Doc of Sorted Set
으로 설명됩니다. 일부 메소드는 제한된 범위의 서브 세트를 반환합니다. 이러한 범위는 반 개방입니다. 즉, 낮은 끝 점은 포함하지만 높은 끝 점은 포함하지 않습니다 (해당되는 경우). 끝 점이 포함됩니다. 닫힌 범위 (양쪽 모두 끝점을 포함하는 )가 필요하며 요소 유형이 지정된 값의 후속 계산 인 을 허용하는 경우 하위 항목에 하위 항목 (후속 항목 (highEndpoint))을 요청하기 만하면됩니다. 예를 들어 s가 정렬 된 문자열 집합 이라고 가정합니다. 다음 관용법은 s에서 0에서 255까지의 모든 문자열을 포함하는 뷰를 얻습니다.
SortedSet sub = s.subSet (low, high + "\ 0"); 즉
, 아래 두 통화 사이의 차이 :
countrySet.headSet("Japan\0");
countrySet.headSet("Japan")
은 첫 번째 최대, 세트의 처음부터 범위 countrySet
에있는 모든 문자열을 얻을 것입니다 은 문자열을 포함합니다. "Japan"
(즉, 범위는 닫음 간격입니다.); 하면서 두 번째 세트의 초기 의 범위의 모든 문자열 까지 있지만 문자열 "Japan"
(즉, 범위가 반개 간격) 제외를 얻을 것이다.출력이 될 것
import java.util.Arrays;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
public class StringPlusNull {
public static void main(String[] args) {
List<String> countryList
= Arrays.asList("U.S.", "U.K.", "China", "Japan", "Korea");
SortedSet<String> countrySet
= new TreeSet<>(countryList);
String toElement = "Japan";
SortedSet<String> countryHeadSet
= countrySet.headSet(toElement);
System.out.format("There are %d countries in the "
+ "(half-open) headset [, %s): %s%n"
, countryHeadSet.size(), toElement, countryHeadSet);
toElement = "Japan\0";
countryHeadSet
= countrySet.headSet(toElement);
System.out.format("There are %d countries in the "
+ "(half-open) headset [, %s): %s%n"
, countryHeadSet.size(), toElement, countryHeadSet);
}
}
:
There are 1 countries in the (half-open) headset [, Japan): [China]
There are 2 countries in the (half-open) headset [, Japan): [China, Japan]
당신이이 질문 봤어 내가 관용구의 사용을 설명하기 위해 내 자신의 테스트 프로그램을 포함하고
? http://stackoverflow.com/questions/9753576/whats-the-meaning-of-char-zero-0-in-java –
' '\ 0'' char가'null' char –
사실 그것은' NUL'을'null 문자 '로 알려진'char'로 선언하지만'null'은 Java 키워드이며 원시 타입에는 적용되지 않습니다. 나는 그 단어가 너무 비슷하지만 의미가 너무 다르기 때문에 그것을 가져온다. https :////// # jls-EscapeSequence –