【发布时间】:2014-05-06 20:39:25
【问题描述】:
Android - 如何检查另一个逗号分隔字符串中的字符串值是否存在。
String all_vals = "617,618,456,1,234,5,5678,225";
String check_val= "456";
如何查看,
if (all_vals contains check_val) {
}
【问题讨论】:
标签: java android string arraylist
Android - 如何检查另一个逗号分隔字符串中的字符串值是否存在。
String all_vals = "617,618,456,1,234,5,5678,225";
String check_val= "456";
如何查看,
if (all_vals contains check_val) {
}
【问题讨论】:
标签: java android string arraylist
使用split 将逗号分隔的字符串转换为数组,然后使用Arrays.asList 将其转换为List,然后使用contains。
String all_vals = "617,618,456,1,234,5,5678,225";
List<String> list = Arrays.asList(all_vals.split(","));
if (list.contains(check_val)) {
}
这将防止误报只检查列表中是否存在带有contains 的子字符串直接在字符串all_vals 上,例如all_vals.contains("4") 将在直接 String#contains 情况下返回 true。
【讨论】:
15 reputation,你就可以投票了。
Java 8:
String all_vals = "617,618,456,1,234,5,5678,225";
String check_val= "5678";
Arrays.stream(all_vals.split(",")).anyMatch(check_val:: equals)
if(Arrays.stream(all_vals.split(",")).anyMatch(check_val:: equals)){
System.out.println("The value is present");
}
【讨论】:
String all_vals = "617,618,456,1,234,5,5678,225";
String check_val= "5678";
int place = 1;
String[] strings = all_vals.split(",");
for (String str : strings) {
if(str.equals(check_val))
{
System.out.println("We have string in all_val on place: " + place);
}
place++;
}
【讨论】:
String all_vals = "617,618,456,1,234,5,5678,225";
String check_val= "456";
if (all_vals.startsWith(check_val) ||
all_vals.endsWith(check_val) ||
all_vals.contains("," + check_val + ","))
{
System.out.println("value found in string");
}
【讨论】:
contains的情况下检查逗号? check_val 之前的endsWith 和check_val 之后的startsWich 不应该是逗号吗?
check_val= "25";会失败