java String 截取字符串
<div style='padding:2px 0px;'>A . 公益性项目</div>
<div style='padding:2px 0px;'>B . 经营性项目</div>
<div style='padding:2px 0px;'>C . 准公益性项目</div>
<div style='padding:2px 0px;'>D . 准经营性项目</div>
只需要以上中文字符,用java String如何解决?
------解决方案--------------------
String s = "<div style='padding:2px 0px;'>A . 公益性项目</div><div style='padding:2px 0px;'>B . 经营性项目</div><div style='padding:2px 0px;'>C . 准公益性项目</div><div style='padding:2px 0px;'>D . 准经营性项目</div>";
Pattern p = Pattern.compile(" \\. (.+)</div>");
Matcher m = p.matcher(s);
while(m.find()) {
System.out.println(m.group(1));
}
------解决方案--------------------楼主 试试 ,我已经 测试过 !
public static void main(String[] args) {
String aa = "<div style='padding:2px 0px;'>A . 公益性项目</div><div style='padding:2px 0px;'>B . 经营性项目</div><div style='padding:2px 0px;'>C . 准公益性项目</div><div style='padding:2px 0px;'>D . 准经营性项目</div>";
boolean lastIsChinese = false;
boolean isTrue = false;
for (int i = 0; i < aa.length(); i++) {
String bb = aa.substring(i, i+1);
//生成一个Pattern,同时编译一个正则表达式.
boolean thisIsChinese = java.util.regex.Pattern.matches("[\u4E00-\u9FA5]", bb);
if(thisIsChinese){
lastIsChinese = thisIsChinese;
isTrue=true;
System.out.print(bb);
}
if(lastIsChinese && !thisIsChinese && isTrue){
System.out.println(); //换行 用
isTrue=false;
}
}
}
------解决方案--------------------String aa = "<div style='padding:2px 0px;'>A . 公益性项目</div><div style='padding:2px 0px;'>B . 经营性项目</div><div style='padding:2px 0px;'>C . 准公益性项目</div><div style='padding:2px 0px;'>D . 准经营性项目</div>";
Pattern p=Pattern.compile("[\\u4e00-\\u9fa5]+");
Matcher m=p.matcher(aa);
while(m.find()){
System.out.println(m.group(0));
}