}
    public String transform(String word) {               if(ruleArray==null)            return null;        TransformationRule rule;        StringBuffer str=new StringBuffer(word.toUpperCase());        int strLength=str.length();        int startPos=0, add=1;        while(startPos<strLength){            //System.out.println("StartPos:"+startPos);            add=1;            for(int i=0;i<ruleArray.length;i++){                //System.out.println("Testing rule#:"+i);                rule=(TransformationRule)ruleArray[i];                if(rule.startsWithExp() && startPos>0)                    continue;                if(startPos+rule.lengthOfMatch()>=strLength)                    continue;                if(rule.isMatching(str,startPos)){                    str.replace(startPos,startPos+rule.getTakeOut(),rule.getReplaceExp());                    add=rule.getReplaceExp().length();                    strLength-=rule.getTakeOut();                    strLength+=add;                    //System.out.println("Replacing with rule#:"+i+" add="+add);                    break;                }            }            startPos+=add;        }        return str.toString();    }