/*
 * Created on 20-Apr-2011
 *
 * TODO 
 */
package uk.ac.roe.wfau;

import java.sql.Array;
import java.util.ArrayList;
import java.util.List;

/**
 * @author mar
 *
 */
public class TextToLines {

    public static String [] getLineArray(String txt, int maxLength ) {
        if (txt==null) {
            return null;
        }
        if (txt.length() <= maxLength) {
            return new String []{txt};
        }
        int lastGood=0;
        int startP=0;
        int returnP=0;
        int strLength=txt.length();
        List strList=new ArrayList();
        
        while (startP >=0) {
        returnP=startP;
        if ((startP+maxLength) > strLength ){
            startP=-1;
            strList.add(txt.substring(returnP));
            System.out.println("final add");
        }
        else {
        for (int i=startP; i < startP+maxLength;i++) {            
            if (txt.charAt(i)==' ' || txt.charAt(i)==','){
                lastGood=i;                
            }
        }
        if (lastGood <= startP){
            lastGood=startP+maxLength-1;
        }
        startP=lastGood+1;
        System.out.println("adding");
        strList.add(txt.substring(returnP,lastGood+1));
        }
        }
        System.out.println(strList.size());
        String [] strArray=new String [strList.size()];
        for (int i=0;i<strList.size(); i++) {
            strArray[i]=(String)strList.get(i);
        }
       // strArray=strList.toArray(strArray);
//        return (String [])strList.toArray();
       // return strList.toArray(strArray);
        return strArray;

    }
    
    public static void main(String[] args) {
        String [] lines = getLineArray("1234567890 A 123456789 B",3);
        for (int i=0;i<lines.length;i++) {
            System.out.println(lines[i]+":");
        }
    }
}
