【问题标题】:Android java .contains() int in object list对象列表中的 Android java .contains() int
【发布时间】:2015-07-29 00:52:17
【问题描述】:

我连接到一个 url 并将整个页面读入一个字符串,然后用逗号分割字符串并将所有内容存储在一个列表中,代码如下:

HttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet(params[0]);
HttpResponse response = httpClient.execute(get);

bodyHtml = EntityUtils.toString(response.getEntity()).replace("[", "").replace("]", "");
items = Arrays.asList(bodyHtml.split("\\s*,\\s*"));

我需要检查此列表中是否存在带有.contains() 的某些整数,但列表本身是java.lang.object

如何使列表成为整数列表而不是对象列表,或者如何检查对象列表中的现有整数?

【问题讨论】:

  • items 是什么?你能显示你得到的回应吗?

标签: java android list integer contains


【解决方案1】:

语句bodyHtml.split("\\s*,\\s*") 将返回一个String 数组。随后,语句Arrays.asList(bodyHtml.split("\\s*,\\s*")); 将返回List<String>。因此,您应该能够将结果分配给 List<String>

List<String> items = Arrays.asList(bodyHtml.split("\\s*,\\s*"));

您现在有两个选项来搜索列表:

  1. 如果您的searchKey 不一定是Integer,您可以通过将String 传递给contains 方法来搜索List
  2. 如果您的searchKey 必须是Integer,您可以使用searchKey.toString() 将搜索键转换为String 并将其传递给contains 方法。

话虽如此,这种方法只有在完全匹配时才有效。如果您想要部分匹配,List.contains 不是要走的路。最快的解决方案是遍历 List<String> 并在列表中的每个元素上调用 String.contains(searchKey)

【讨论】:

  • SearchKey 作为字符串不会有问题,但我如何将对象转换为字符串?这就是我要检查的内容,我将.toString() 放在哪里? allItems_filtering.results(i).data_id
  • @KrijnvanderBurg 我不确定allItems_filtering.results(i).data_id 到底做了什么,但是是的,您可以使用toString()Integer 转换为String
  • 我不需要 data_id 是一个 int 所以我把它改成了一个字符串现在它可以使用我的旧代码了,谢谢
猜你喜欢
  • 2013-01-12
  • 2011-02-07
  • 2020-08-10
  • 1970-01-01
  • 2017-03-04
  • 2015-12-25
  • 2015-06-27
  • 1970-01-01
  • 2012-01-10
相关资源
最近更新 更多