一个比较的问题还没解决

hnnxzhoujia 2008-10-22 11:16:37
刚才问过的一个问题,没解决。再详细说一下
有两个字符串 String str = 杭州湖州嘉兴宁波丽水金华 //这个str是可以确定的值。
String str2 = 杭州嘉兴 //str2的值是通过选择页面获得,可以多选。

在BEAN里str的获得方式如下:
List listr = ValidateUtil.getUserLocationsOnRight(CommonUtil.getUser().getUsername());
List newList = new ArrayList();
for (Iterator iter = listr.iterator(); iter.hasNext();) {
SysSimpleItem sysSimpleItem = (SysSimpleItem) iter.next();
String value = sysSimpleItem.getValue();
String key = sysSimpleItem.getKey();

newList.add(value);

}
Iterator iterator = newList.iterator();
String str = "";
while (iterator.hasNext()) {
str += iterator.next();
}
System.out.println("------------------------str="+str); //我把str从一个list转成一个字符串

str2,是我从页面取到的,代码如下:
for (int i = 0; i < ids.length; i++) {
GisFaultReport faultReport = getNameById(ids[i]);

String area = faultReport.getArea();//这个就是我从页面取到的地市,也就是要拿这个地市和str去比。
}


//我之前想过把这个area通过list.add(area),然后把list转成String,来两个String 进行比较,结果各位都说这样不好处理,那就按我上面这种代码,如何进行比较? 我的要求就是从页面取到的area(可能有多个),一定要在str里存在,如果不存在即刻结束。
...全文
158 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanggc1001 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 justinavril 的回复:]
引用 3 楼 hnnxzhoujia 的回复:
str2是一个一个的传的,怎么匹配啊。

比如说你的str2是成都  对吧    str是北京天津成都武汉


那么很多办法

Java codeif(str.indexOf(str2)!=-1)
System.out.println("str includes"+str2);


然后你的str2要是还有别的城市名的话  或者你把str2的每个城市存在一个字符串数组里 直接循环取  然后利用上面的代码比较
[/Quote]
ZXEOC 2008-10-22
  • 打赏
  • 举报
回复
你list.add(area)之后再

Iterator it=list.Iterator();
while(it.hasNext())
{
if(str.contains(it.next()))
{/*your business code*/}
}
justinavril 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qiandongbo 的回复:]
看了半天的题目,楞是闷了~结果是这问题,呵呵~
[/Quote]
估计楼主开始是把所有要匹配的字符串,没加分隔符就连接在一起了 这样反而没办法处理了 我也是刚看明白的
tiyuzhongxin789 2008-10-22
  • 打赏
  • 举报
回复
if (str.indexOf(str2) != 0)
System.out.println("str includes "+ str2);
你的str2要是还有别的城市名的话 或者你把str2的每个城市存在一个字符串数组里 直接循环取
mjjzg 2008-10-22
  • 打赏
  • 举报
回复
up
qiandongbo 2008-10-22
  • 打赏
  • 举报
回复
看了半天的题目,楞是闷了~结果是这问题,呵呵~
qiandongbo 2008-10-22
  • 打赏
  • 举报
回复
indexof(String subString)...
循环判断吧
justinavril 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hnnxzhoujia 的回复:]
str2是一个一个的传的,怎么匹配啊。
[/Quote]
比如说你的str2是成都 对吧 str是北京天津成都武汉


那么很多办法

if (str.indexOf(str2) != 0)
System.out.println("str includes "+ str2);



然后你的str2要是还有别的城市名的话 或者你把str2的每个城市存在一个字符串数组里 直接循环取 然后利用上面的代码比较
hnnxzhoujia 2008-10-22
  • 打赏
  • 举报
回复
str2是一个一个的传的,怎么匹配啊。
hnnxzhoujia 2008-10-22
  • 打赏
  • 举报
回复
前提 如果选择多个地市中有一个在str中不存在的话,集体返回。
justinavril 2008-10-22
  • 打赏
  • 举报
回复
这么说吧 只要你的str2是可以做到不连在一起,或者连载一起有分隔符的话,都是可以去匹配的 但是如果连在一起 我觉得弄起来就太麻烦太麻烦
java__king 2008-10-22
  • 打赏
  • 举报
回复
楼主辛苦啦,呵呵..
帮顶.
East271536394 2008-10-22
  • 打赏
  • 举报
回复
Java codeif (str.indexOf(str2) != 0)
System.out.println("str includes "+ str2);




然后你的str2要是还有别的城市名的话 或者你把str2的每个城市存在一个字符串数组里 直接循环取 然后利用上面的代码比较
jcyan 2008-10-22
  • 打赏
  • 举报
回复
str += iterator.next();
改成:str = iterator.next() + 分割符 + str;
这样匹配的时候就不会出现“海南”在“上海南京”里面的问题了
明白?
liuliu703 2008-10-22
  • 打赏
  • 举报
回复
有点头晕

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧