java怎么截取自定义字符串?

比如说,string str="<abc>"
截取从<到>的内容,包括<>。
最后str="abc"
回答得好的,我再加高分
abc的内容不是固定的,长度是不一样的

第1个回答  2014-01-26
截子串,从第2个字符到倒数第2个字符

str.substring(1,str.length-1);

如果格式是固定的,可以用空格替代"<"和">"
str = str.replace("<","").replace(">","");


str = str.replaceAll("<|>",""); replace()方法的第一个参数为正则表达式

如果字符串格式为<abc><ded><123>也可以用str = str.replaceAll("<|>","");去掉所有的"<"和">"追问

如果“”中abc这个内容多了第一个参数里含有的符号怎么办?就是说如果最后要得到str="a>dc"的话,用这个方法,那这里面的大于符号不是也被一起去掉了么?

第2个回答  2014-01-27
正则表达式可以很好处理,示例程序如下:
public static void main(String[] args) {
//正则表达式
String patternStr = "(<)([^<>]+)(>)";
//测试字符串
String str = "111 <222> 333<444>555<666>777";
Matcher meq = Pattern.compile(patternStr).matcher(str);
while(meq.find()){
System.out.println(meq.group(2));
}

}

运行结果:
222
444
666

如果不满足需求,我帮你再调整一下正则表达式追问

我这么跟你说吧,有以下内容:
 
aaabbccccdf
{abc="1a_2b"
def="3c4d"
}
 
我最后要得到以上内容的1a_2b和3c4d
并且有多个这样的内容

追答

修改一下:

public static void main(String[] args) {

//正则表达式
String patternStr = "(\\{[^\\{\\}=]+=\")([^\"]+)(\"[^\\{\\}=]+=)(\")([^\"]+)(\"\\})";
//测试字符串
String str = "aaabbccccdf{abc=\"1a_2b\"def=\"3c4d\"}aaabbccccdf{abc=\"5a_6b\"def=\"7c8d\"}aaabbccccdf{abc=\"9a_10b\"def=\"11c12d\"}";
Matcher meq = Pattern.compile(patternStr).matcher(str);
while(meq.find()){
System.out.println(meq.group(2));
System.out.println(meq.group(5));
}

}

运行结果:

1a_2b
3c4d
5a_6b
7c8d
9a_10b
11c12d

本回答被提问者采纳
第3个回答  2014-01-26

结果:

第4个回答  2014-01-26
如果是固定格式,如string str="<abc>"
或string str="<xxxxxxx>"

那么很简单str.substring(1,str.length()-1)
第5个回答  2014-01-27
要么正则表达式,需要改条件。
要么subString
str.substring(0);
str.substring(str.length()-1);
System.out.println(str);
相似回答