java根据自定义标记分割字符串

要将一篇长文章分割成多页, 那么就需要在文章中做标记, 这个标记不能是简单的单个字符,因为这样可能在分割时将不想分割的也分割了, 所以需要定义一个在文章内容中不会出会的字符串作标记,

作用:将长字符串用自定义标记字符串分割后,取出分别加入到list中。

下面我将我用java写的共享给大定,欢迎转载但请注明出自同行网txw100.com

分割的方法代码:

public ArrayList<String> StringDiv(String inputStr)
 {
  String strFlag="<!--divFlag-->";
  Integer flagLength=strFlag.length();
  Integer flagi=inputStr.indexOf(strFlag);
  Integer totalLengh=inputStr.length();
  ArrayList<String> list = new ArrayList<String>();
  if(flagi>=0)
  {
   String content=inputStr.substring(0, flagi);
   if(!content.trim().equals(""))
//    System.out.println(content);
   list.add(content);

//这里我定义的是最多标记可能会出现50次, 当然你可以定义得更大, 这没关系。
   for(int i=0; i<50; i++)
   {
    inputStr=inputStr.substring(flagi+flagLength, totalLengh);
    totalLengh=inputStr.length();
    flagi=inputStr.indexOf(strFlag);
    if(flagi>=0)
    {
     content=inputStr.substring(0, flagi);
     if(!content.trim().equals(""))
//      System.out.print(content);
     list.add(content);
    }
    else
    {
     if(!inputStr.trim().equals(""))
//      System.out.print(inputStr);
     list.add(inputStr);
     break;
    }
   }
  }
  else
  {
//   System.out.print(inputStr);
   list.add(inputStr);
  }
  return list;
 }

调用的方法代码:

 @Test
 public void division()
 {
  String inputStr="    <!--divFlag-->   aa sf<>sdf  <!--divFlag-->  sdf  dd<!--divFlag--><!--divFlag-->";
  ArrayList<String> list = new ArrayList<String>();
  list=StringDiv(inputStr);
  for(int i=0; i<list.size();i++)
  {
   System.out.println(list.get(i));
  }
 }

posted @ 2012-12-09 19:24  wj-conquer  阅读(652)  评论(0编辑  收藏  举报