>>249
StringBuffer sb=new StringBuffer();
StringTokenizer st=new StringTokenizer(text, ";");
String prevToken=null;
while(st.hasMoreTokens()) {
  String token=st.nextToken();
  if(token.startsWith("j")) {
    int count=0;
    try {
      count=Integer.parseInt(token.substring(1, token.length()));
    } catch (NumberFormatException ex) { }
    if(count>0 && prevToken!=null) {
      sb.append("<td colspan=\"" + count + "\">");
      sb.append(prevToken);
      sb.append("</td>");
      prevToken=null;
      continue;
    }
  }
  if(prevToken!=null) {
    sb.append("<td>");
    sb.append(prevToken);
    sb.append("</td>");
  }
  prevToken=token;
}
if(prevToken!=null) {
  sb.append("<td>");
  sb.append(prevToken);
  sb.append("</td>");
}