本人想对任意给定的字符串,按照指定的首尾,从而截取中间部分,如:String s="<table><tr><td>你好:请帮忙</td></tr></table>";指定 首:<td>你好: 尾:</td>
想等到结果: "请帮忙"又例如:
String s="<table><tr><td>你好:请帮忙</td><td>你们好:谢谢</td></tr></table>";
指定 首:<td>你们好: 尾:</td>
想等到结果: "谢谢"
请问怎样实现?是使用substring吗?是用正则法则吗?如何实现?
想等到结果: "请帮忙"又例如:
String s="<table><tr><td>你好:请帮忙</td><td>你们好:谢谢</td></tr></table>";
指定 首:<td>你们好: 尾:</td>
想等到结果: "谢谢"
请问怎样实现?是使用substring吗?是用正则法则吗?如何实现?
解决方案 »
- 菜鸟求助 把mysql t_student表格的所有记录显示在JTable中
- 多个参数类似的构造函数如何相互引用和简写?
- JLabel中嵌入HTML时"align=left"失效?
- 一道循环的题目 高手们帮帮我
- runTime.totalMemory比maxMemory小很多,是否正常?
- 各位高手,请帮帮忙。如何将JTable 加进JComboBox 下拉列表中,并可以让JTable 获得焦点
- 请教各位有那些web server支持java
- 开发工具的差异
- java中 有没有加密解密类
- java.util.NoSuchElementException: Vector Enumeration 求大神帮忙,在线急等
- 如何得到文件的创建者和访问权限这类属性?
- 请问高手:何为类的字段
String str1 = "<td>你好:";
String str2 = "</td>";int startIndex = str1.indexOf(str1) + str1.length();
int endIndex = str2.indexOf(str2);
String s = str.substring(str1, str2);
Pattern p = Pattern.compile("\\<td\\>你们好:(.*)\\<\\/td\\>");
Matcher m = p.matcher(s); boolean rs=m.find();
for (int i = 1; i <= m.groupCount(); i++) {
System.out.println(m.group(i));
}
public static String filtrate(String str, String start, String end){
StringBuffer buffer = new StringBuffer();
int i = 0, leg = 0;
boolean isStart = false;
while(i != -1){
if (isStart){
isStart = false;
i = str.indexOf(end);
if(i == -1){
leg = str.length();
}
else{
leg = i;
}
buffer.append(str.substring(start.length(), leg).toCharArray());
}
else {
i = str.indexOf(start);
if(i > -1){
isStart = true;
}
str = str.substring(i + 1);
}
}
return buffer.toString();
}
public static void main(String[] args){
System.out.println(filtrate("<table><tr><td>Hello: Good!</td><td>How are you: Fine!</td></tr></table>", "<td>How are you:", "</td>"));
}
}