"二级销售部,销售部,业务部,管理部,仓储部"
<option value="销售部" <%=str_workgroup.indexOf("销售部")>=0 ? "selected" : ""%>>销售部</option>
我如果这样判断str_workgroup是否包含'销售部',那即使str_workgroup里没有'销售部',但是'二级销售部'里也包含了'销售部'。
怎么样判断出str_workgroup里包含的是二级销售部',而不是'销售部'?
另外一个帖子里说错了,双引号里没有单引号。而且Matcher m = Pattern.compile("(?<=)销售部(?=)").matcher(str_workgroup);也不能区分"二级销售部"和“销售部”。
还有能不能一行就判断出来,否则jsp的下拉列表里有几十个option,写起来就太麻烦了。
3 个解决方案
#1
public static void main(String[] args) {
String s = "二级销售部,销售部,业务部,管理部,仓储部";
System.out.println(Pattern.matches(".*(?<=^|,)销售部.*", s));
}
#2
如果 String s = "二级销售部,销售部二级,业务部,管理部,仓储部"; 这样判断就有问题了,LZ最好想想你们有没有这种可能。
如果有,那就用字符串的split方法把字符串变成数组来比较吧!
#3
那就这样
public static void main(String[] args) {
String s = "二级销售部,销售部二级,业务部,管理部,仓储部";
System.out.println(Pattern.matches(".*(?<=^|,)销售部(?=$|,).*", s));
}
#1
public static void main(String[] args) {
String s = "二级销售部,销售部,业务部,管理部,仓储部";
System.out.println(Pattern.matches(".*(?<=^|,)销售部.*", s));
}
#2
如果 String s = "二级销售部,销售部二级,业务部,管理部,仓储部"; 这样判断就有问题了,LZ最好想想你们有没有这种可能。
如果有,那就用字符串的split方法把字符串变成数组来比较吧!
#3
那就这样
public static void main(String[] args) {
String s = "二级销售部,销售部二级,业务部,管理部,仓储部";
System.out.println(Pattern.matches(".*(?<=^|,)销售部(?=$|,).*", s));
}