Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅使用NavigableSet/SortedSet接口按首字母搜索字符串_Java_Search_Tree_Set - Fatal编程技术网

Java 仅使用NavigableSet/SortedSet接口按首字母搜索字符串

Java 仅使用NavigableSet/SortedSet接口按首字母搜索字符串,java,search,tree,set,Java,Search,Tree,Set,我有一个: String s = "ab" + Character.MAX_VALUE + Character.MAX_VALUE + Character.MAX_VALUE + "cd"; 让我们把它放到树集树集中。 现在我必须使用前3个字符“ab”+Character.MAX\u VALUE找到这个字符串。 方法treeSet.sublist(“ab”+Character.MAX\u值,true,“ab”+Character.MAX\u值+Character.MAX\u值,true)对我不

我有一个:

String s = "ab" + Character.MAX_VALUE + Character.MAX_VALUE + Character.MAX_VALUE + "cd";
让我们把它放到
树集树集
中。
现在我必须使用前3个字符
“ab”+Character.MAX\u VALUE
找到这个字符串。
方法
treeSet.sublist(“ab”+Character.MAX\u值,true,“ab”+Character.MAX\u值+Character.MAX\u值,true)
对我不起作用。有什么办法使它起作用吗?由于字符溢出,我无法将查询的最后一个字符更改为char+1。

具体答案很简单,您可能已经解决了这个问题:

treeSet.subSet("ab" + Character.MAX_VALUE, "ac")
(这与
treeSet.subSet(“ab”+Character.MAX_值,true,“ac”,false)”相同)

假设您在一个变量中接收到三个字符(通常是
字符串
),这可能说起来容易做起来难。如果字符串以
Character.MAX\u VALUE
结尾,则需要切掉所有尾随的
Character.MAX\u VALUE
,然后增加最后剩余的字符。还有一种特殊情况:如果字符串由所有
字符.MAX\u值组成,则需要使用
tailSet()
而不是
subSet()
。通过一些
if
语句和一个循环,可以对其进行编程。快乐编码


更简单的选择:始终使用
tailSet()
。如果存在字符串,则保证包含该字符串。从尾部集合中选取第一个字符串,并检查它是否以三个字符开头。如果是,则您已找到满足搜索条件的字符串。如果尾集为空或第一个字符串不是以您的三个字符开头,则您的字符串不在那里,无法找到。

具体答案很简单,您可能已经找到了:

treeSet.subSet("ab" + Character.MAX_VALUE, "ac")
(这与
treeSet.subSet(“ab”+Character.MAX_值,true,“ac”,false)”相同)

假设您在一个变量中接收到三个字符(通常是
字符串
),这可能说起来容易做起来难。如果字符串以
Character.MAX\u VALUE
结尾,则需要切掉所有尾随的
Character.MAX\u VALUE
,然后增加最后剩余的字符。还有一种特殊情况:如果字符串由所有
字符.MAX\u值组成,则需要使用
tailSet()
而不是
subSet()
。通过一些
if
语句和一个循环,可以对其进行编程。快乐编码


更简单的选择:始终使用
tailSet()
。如果存在字符串,则保证包含该字符串。从尾部集合中选取第一个字符串,并检查它是否以三个字符开头。如果是,则您已找到满足搜索条件的字符串。如果尾集为空或第一个字符串不是以你的三个字符开头,则你的字符串不在那里,无法找到。

@无论是谁投票赞成结束,我相信这个问题包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。这很清楚。@无论是谁投票赞成结束,我相信这个问题包括想要的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。很清楚。
“ab”+Character.MAX\u VALUE+Character.MAX\u VALUE的解决方案是什么
tailSet(“ab”+Character.MAX\u VALUE,true)
返回
ab+Character.MAX\u VALUE
之后的每个元素。例如“纽约”、“加拿大”等。如果我在树集合中有
Character.MAX\u VALUE+“b”
元素该怎么办。如何使用
Character.MAX\u值查找它<代码>树集。子集(“ab”+Character.MAX\u值+Character.MAX\u值,“ac”)
。2.没错。如果希望所有字符串都以查询字符串开头,则尾部集不会执行所有必要的筛选。3. <代码>尾集(“+字符.最大值)
。谢谢!你真的帮了我。
“ab”+Character.MAX\u VALUE+Character.MAX\u VALUE的解决方案是什么
tailSet(“ab”+Character.MAX\u VALUE,true)
返回
ab+Character.MAX\u VALUE
之后的每个元素。例如“纽约”、“加拿大”等。如果我在树集合中有
Character.MAX\u VALUE+“b”
元素该怎么办。如何使用
Character.MAX\u值查找它<代码>树集。子集(“ab”+Character.MAX\u值+Character.MAX\u值,“ac”)
。2.没错。如果希望所有字符串都以查询字符串开头,则尾部集不会执行所有必要的筛选。3. <代码>尾集(“+字符.最大值)
。谢谢!你真的帮了我