所以我有一个数组,我想知道是否有一种过滤数据的方法,以便如果我想搜索“牛奶加仑”,如果我只输入牛奶,我仍然会找到匹配项。 这是一个JSONArray,但我想它的行为就像一个普通的数组。
它应该像SQL中的LIKE语句一样工作,您只需要比较它并获得相似的结果
我一直在搜索,但是没有发现任何对我有帮助的东西,我只是想知道是否有可能,以及如何使它适应Android Studio, 在此先感谢
我的JSONArray:
[
{
"id":"1",
"itemCode":"5674779",
"qtyOnHand":"1",
"itemDesc":"TEST",
"itemPrice":87,
"itemRetail":"100.00",
"itemWholesale":"0",
"itemTax":"",
"itemTaxes":"1",
"itemCurrency":"\u20a1",
"itemWTaxes":null
},
{
"id":"2",
"itemCode":"8215651",
"qtyOnHand":"0",
"itemDesc":"PRODUCTO EN DOLARES",
"itemPrice":38.4975,
"itemRetail":"44.25",
"itemWholesale":"0",
"itemTax":"",
"itemTaxes":"1",
"itemCurrency":"$",
"itemWTaxes":null
}
]
答案 0 :(得分:2)
如果您想使用LINQ之类的东西,请查看以下内容: What is the Java equivalent for LINQ?
如果没有,也许您可以尝试使用for,.contains和另一个arraylist来存储结果的工作方法:
for (String something : yourArray) {
if (something.contains("milk")) {
arrayWithResults.add(something);
}
}
答案 1 :(得分:1)
假设您有一个类似{"Gallon of Milk", "Beer Can", "Glass of Milk", "Empty"}
的数组,则可以通过以下方式对其进行过滤:
String[] array = {"Gallon of Milk", "Beer Can", "Glass of Milk", "Empty"};
List<String> list = new ArrayList<>(Arrays.asList(array));
List<String> filtered = list.stream()
.filter(s -> s.contains("Milk")).collect(Collectors.toList());
for (String s : filtered) {
System.out.println(s);
}
将打印:
Gallon of Milk
Glass of Milk