日期:2014-05-20  浏览次数:20725 次

java String 截取字符串
<div style='padding:2px 0px;'>A&nbsp;.&nbsp;公益性项目</div>
<div style='padding:2px 0px;'>B&nbsp;.&nbsp;经营性项目</div>
<div style='padding:2px 0px;'>C&nbsp;.&nbsp;准公益性项目</div>
<div style='padding:2px 0px;'>D&nbsp;.&nbsp;准经营性项目</div>


只需要以上中文字符,用java String如何解决?
------最佳解决方案--------------------
楼主 试试 ,我已经 测试过 !

public static void main(String[] args) {
  String aa = "<div style='padding:2px 0px;'>A&nbsp;.&nbsp;公益性项目</div><div style='padding:2px 0px;'>B&nbsp;.&nbsp;经营性项目</div><div style='padding:2px 0px;'>C&nbsp;.&nbsp;准公益性项目</div><div style='padding:2px 0px;'>D&nbsp;.&nbsp;准经营性项目</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&nbsp;.&nbsp;公益性项目</div><div style='padding:2px 0px;'>B&nbsp;.&nbsp;经营性项目</div><div style='padding:2px 0px;'>C&nbsp;.&nbsp;准公益性项目</div><div style='padding:2px 0px;'>D&nbsp;.&nbsp;准经营性项目</div>";
Pattern p=Pattern.compile("[\\u4e00-\\u9fa5]+");
Matcher m=p.matcher(aa);
while(m.find()){
System.out.println(m.group(0));
}
------其他解决方案--------------------

String s = "<div style='padding:2px 0px;'>A&nbsp;.&nbsp;公益性项目</div><div style='padding:2px 0px;'>B&nbsp;.&nbsp;经营性项目</div><div style='padding:2px 0px;'>C&nbsp;.&nbsp;准公益性项目</div><div style='padding:2px 0px;'>D&nbsp;.&nbsp;准经营性项目</div>";
        Pattern p = Pattern.compile("&nbsp;\\.&nbsp;(.+)</div>");
        Matcher m = p.matcher(s);
        while(m.find()) {
            System.out.println(m.group(1));
        }