這個習語是什麼意思?與「\ 0」連接的java字符串(例如「Japan \ 0」)?如在爲什麼在查找SortedSet中的headSet時追加空字符「 0」?
SortedSet<String> countryHeadSet
= countrySet.headSet("Japan\0");
字符串"Japan\0"
在調用中意味着什麼?如果程序員只寫
countryHeadSet
= countrySet.headSet("Japan");
這個習語是什麼意思?與「\ 0」連接的java字符串(例如「Japan \ 0」)?如在爲什麼在查找SortedSet中的headSet時追加空字符「 0」?
SortedSet<String> countryHeadSet
= countrySet.headSet("Japan\0");
字符串"Japan\0"
在調用中意味着什麼?如果程序員只寫
countryHeadSet
= countrySet.headSet("Japan");
我找到了答案。感謝所有的想法。
一個使用字符串+ "\0"
的成語,尤其是當你看到它 與SortedSet
的範圍,視圖操作,是用它來查找字符串的 接班人。需要
這樣的後繼,因爲這些範圍視操作(subSet()
,headSet()
和tailSet()
)提供半開間隔,並且你 可能需要一個字符串的後繼構建關閉間隔。這在Java Doc of Sorted Set
中解釋了幾種方法返回具有受限範圍的子集。這些範圍是 半開,也就是說,它們包括它們的低端點,但不包括它們的高端點(如果適用)。如果您需要一個封閉範圍(其中 包含兩個端點),並且該元素類型允許計算給定值的後繼者 ,則僅請求從 lowEndpoint的子範圍到後繼者(highEndpoint)。例如,假設s是 的一組有序字符串。下面的習語獲得一個包含 所有字符串的視圖,從低到高(包括0,1,2)。
換句話說,下面的兩個電話之間的區別:
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'作爲一個被稱爲「空字符」的char,但不是'null',它是一個Java關鍵字,不適用於原始類型。我把它提出來是因爲這些詞太相似了,但意義卻非常不同。 https://en.wikipedia.org/wiki/Null_character https://unicode-table.com/en/ https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html #jls-EscapeSequence –