这个成语是什么意思?与"\0“连接的java字符串(例如,“日本\0”?如图所示
SortedSet<String> countryHeadSet
= countrySet.headSet("Japan\0");"Japan\0"字符串在调用中意味着什么?如果程序员只写
countryHeadSet
= countrySet.headSet("Japan");发布于 2017-01-29 23:34:06
我找到了答案。谢谢你所有的想法。
使用字符串+ "\0"的成语之一,特别是当您看到它带有SortedSet的范围视图操作时,就是使用它查找字符串的后继。
之所以需要这样的后续操作,是因为这些范围视图操作(subSet()、headSet()和tailSet())提供了半开放的间隔,而且您可能需要字符串的后续操作来构造封闭的间隔。这在排序集的Java中得到了解释。
有几种方法返回范围受限的子集。这样的范围是半开放的,也就是说,它们包括低端点,但不包括高端点(在适用的情况下)。如果您需要一个封闭范围(包括两个端点),并且元素类型允许计算给定值的后续值,那么只需将子范围从lowEndpoint请求为后继(HighEndpoint)即可。例如,假设s是一组排序的字符串。以下成语获得一个视图,其中包含从低到高、包含的s中的所有字符串: SortedSet sub = s.subSet(low,high+"\0");
换句话说,这两个电话之间的区别如下:
countrySet.headSet("Japan\0");
countrySet.headSet("Japan")第一个字符串将从集合的开始到包含字符串countrySet (即范围是一个封闭间隔)的范围内得到所有字符串;而第二个字符串将从集合的开始一直到但不包括字符串"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]https://stackoverflow.com/questions/41926919
复制相似问题