这个成语是什么意思?与" \ 0"连接的java字符串(例如"日本\ 0")?如在
SortedSet<String> countryHeadSet
= countrySet.headSet("Japan\0");
字符串"Japan\0"
在通话中的含义是什么?如果程序员只写
countryHeadSet
= countrySet.headSet("Japan");
答案 0 :(得分:4)
我找到了答案。感谢所有的想法。
使用字符串+ "\0"
的成语之一,尤其是当你看到它时
使用SortedSet
的范围视图操作,是用它来查找
字符串的后继。
需要这样的后继者,因为那些范围视图操作(subSet()
,headSet()
和tailSet()
)提供半开间隔,以及您
可能需要字符串的后继来构造封闭间隔。这在Java Doc of Sorted Set
有几种方法返回具有受限范围的子集。这样的范围是 半开,也就是说,它们包含低端点但不包括高端点 终点(如适用)。如果你需要一个封闭的范围(哪个 包括两个端点),元素类型允许计算 给定值的后继者,仅请求子范围 lowEndpoint to successor(highEndpoint)。例如,假设s是 一组有序的字符串。以下习语获取包含的视图 s中从低到高的所有字符串,包括:
SortedSet sub = s.subSet(低,高+&#34; \ 0&#34;);
换句话说,下面两个调用之间的区别是:
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]