如何遍历一个字符串中是否存在另一个字符串

hkl881028 2010-11-01 09:30:30
如:“I1I2I3”这个字符串,有个子字符串“I1I3”,这个用contains判断是不存在在那个字符串中的
有什么方法可以判断I1I3是存在那个字符串中的。既只要I1I2I3这个字符串只要有I1I3就可以了,
...全文
609 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
红之悟 2012-05-19
  • 打赏
  • 举报
回复
楼主所说的应该是把那个I1I3看作一个不确定的字符串,也就是判断一个字符串中是包含另一个字符串,楼主对不?
ETCentury 2010-11-03
  • 打赏
  • 举报
回复
难道是这个?

public static void main(String[] args) {
String str = "I11I4I31I3I5I3";

String regex = "I(?=[1|3]{1})";

Pattern pat= Pattern.compile(regex);

Matcher mat = pat.matcher(str);

if(mat.find()){

System.out.println(" It contant");

}else{

System.out.println("It dose not contant");

}

}
ETCentury 2010-11-03
  • 打赏
  • 举报
回复
感觉应该用正则表达式的这个东西:X?=

但我没搞明白,围观下~!
hkl881028 2010-11-02
  • 打赏
  • 举报
回复
回复楼上的,如果这个字符串单独写出来那是可以的。但是我这个字符串"I1I3"是存在一个数组中的。我怎么用正则表达式呢
无伤 2010-11-02
  • 打赏
  • 举报
回复
二楼的表达式就可以解决问题。
macrotea-cn 2010-11-02
  • 打赏
  • 举报
回复
看了楼上的回复,向楼主发来贺电
liudanking 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kebin0001 的回复:]

"I1I2I3".matches(".*I.*1.*I.*3.*");
[/Quote]
正则表达式才是正道。因为使用正则表达式你可以解决一类问题
安迪 2010-11-02
  • 打赏
  • 举报
回复
个人认为比较简单的做法:
public static void main(String[] args) {
String str="I1I2I3";

String str1=str.replaceAll("I1I3", "");
System.out.print((!str.equals(str1))? "含有此字符串!":"不含有此字符串!");

}
hkl881028 2010-11-02
  • 打赏
  • 举报
回复
对对,还是楼上的杰伦哥知道我的心意
gujinf2008 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 yyy521fyy 的回复:]
引用楼主 hkl881028 的回复:
如:“I1I2I3”这个字符串,有个子字符串“I1I3”,这个用contains判断是不存在在那个字符串中的
有什么方法可以判断I1I3是存在那个字符串中的。既只要I1I2I3这个字符串只要有I1I3就可以了,

:“I1I2I3”这个字符串,有个子字符串“I1I3”???怎么可能啊?
[/Quote]
呵呵,估计楼主表达错意了吧,但是看大家的回答,应该是含有“I1”,“I3”就可以了。
yyy521fyy 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 hkl881028 的回复:]
:“I1I2I3”这个字符串,有个子字符串“I1I3”,这个用contains判断是不存在在那个字符串中的
有什么方法可以判断I1I3是存在那个字符串中的。既只要I1I2I3这个字符串只要有I1I3就可以了,
[/Quote]
:“I1I2I3”这个字符串,有个子字符串“I1I3”???怎么可能啊?
mengyalizuopeng 2010-11-02
  • 打赏
  • 举报
回复
呵呵 没明白。。。
cfanllm 2010-11-02
  • 打赏
  • 举报
回复
说说我的思路吧。
声明两个字符串:字符串一和字符串二。
要遍历字符串一是否存在字符串二,那就先计算出字符串二的长度,然后在字符串一中按字符串二的长度截取,进行循环比较。
先留下思路。回头再用代码实现。
  • 打赏
  • 举报
回复
既只要I1I2I3这个字符串只要有I1I3就可以了,

那 I1I2I3 只要有 I 可以不?
hkl881028 2010-11-01
  • 打赏
  • 举报
回复
我的意思是I1I2是存在一个数组里面
kobe_gino 2010-11-01
  • 打赏
  • 举报
回复
I1I2I3".matches(".*I.*1.*I.*3.*");
hkl881028 2010-11-01
  • 打赏
  • 举报
回复
回复二楼:但是如果我要是I1I2是一个数组呢?
blazingfire 2010-11-01
  • 打赏
  • 举报
回复
把字串逐个比较呀:

public static void main(String[] args) {
System.out.println(charContains("I1I2I3", "I1I3"));
}

public static boolean charContains(String s, String sub) {
if (s == null || sub == null)
return false;

for (int i = 0; i < sub.length(); i++) {
boolean contains = false;
char c = sub.charAt(i);
for (int j = 0; j < s.length(); j++) {
if (c == s.charAt(j)) {
contains = true;
break;
}
}
if (!contains)
return false;
}

return true;
}

kebin0001 2010-11-01
  • 打赏
  • 举报
回复
"I1I2I3".matches(".*I.*1.*I.*3.*");
ftsrc1987 2010-11-01
  • 打赏
  • 举报
回复
正则表达式

62,615

社区成员

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

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