【发布时间】:2018-02-07 15:38:03
【问题描述】:
我在一个集合中搜索一个字符串并且一直返回 -1
下面是我的代码:
Set<String> myTokens = sharedPreferences.getStringSet("myTokens", new HashSet<String>());
if(String.valueOf(myTokens).contains(auth.getUid())){
int i = Arrays.asList(myTokens).indexOf(auth.getUid());
Log.w(TAG, "Index position of token is: " + String.valueOf(i) + " where the token array is: " + myTokens + "auth.getUid() is: " + auth.getUid());
我的输出:
Index position of token is: -1 where the token array is: [0o75WmAAlTcWUzxgbcleBQSVQSr1, Ztg4GOqeucd6CqNAEokUe7eRHhY2, VatU5fy1U4cgTc3uBBiGX7G7kuT2] auth.getUid() is: Ztg4GOqeucd6CqNAEokUe7eRHhY2
不知道为什么我总是得到-1,有什么想法吗?
人们建议 auth.getUid() 的值不在集合中。但是 "Ztg4GOqeucd6CqNAEokUe7eRHhY2" 出现在我放在问题底部的集合中
感谢阅读!
【问题讨论】:
-
indexOf()在 Set 中找不到元素时返回 -1 -
您好,感谢您的回复,值“Ztg4GOqeucd6CqNAEokUe7eRHhY2”在集合中?
-
auth.getUid() "Ztg4GOqeucd6CqNAEokUe7eRHhY2" 值未存储在 Set 这就是您获得 -1 的原因。当 Set 没有在集合中找到值时
-
尝试打印myTokens看看
-
为什么首先将
Set转换为String?Set已经有一个很好用的.contains方法
标签: java android arrays indexof