1  /*
     2   Copyright aswing.org, see the LICENCE.txt.
     3  */
     4    
     5   class org.aswing.utils.StringUtils{
     6   	
     7   	/**
     8   	 * Returns value is a string type value.
     9   	 * with undefined or null value, false returned.
    10   	 */
    11   	public static function isString(value):Boolean{
    12   		if(value == undefined) return false;
    13   		return typeof(value) == "string" || value instanceof String;
    14   	}
    15   	
    16   	public static function castString(str):String{
    17   		if(str == undefined){
    18   			return str;
    19   		}
    20   		if(typeof(str) == "string"){
    21   			return String(str);
    22   		}else if(str instanceof String){
    23   			return str.toString();
    24   		}else{
    25   			return null;
    26   		}
    27   	}
    28   	
    29   	/**
    30   	 * replace oldString with newString in targetString
    31   	 */
    32   	public static function replace(targetString:String , oldString:String , newString:String):String{
    33   		return targetString.split(oldString).join(newString);
    34   	}
    35   	
    36   	/**
    37   	 * remove all the blankspace in targetString
    38   	 */
    39   	public static function trim(targetString:String):String{
    40   		return replace(targetString," ","");
    41   	}
    42   	
    43   	/**
    44   	 * remove only the blankspace on targetString's left
    45   	 */
    46   	public static function trimLeft(targetString:String):String{
    47   		var tempIndex:Number = 0;
    48   		var tempChar:String = "";
    49   		for(var i:Number=0 ; i<targetString.length ; i++){
    50   			tempChar = targetString.charAt(i);
    51   			if(tempChar != " "){
    52   				tempIndex = i;
    53   				break;
    54   			}
    55   		}
    56   		return targetString.substr(tempIndex);
    57   	}
    58   	
    59   	/**
    60   	 * remove only the blankspace on targetString's right
    61   	 */
    62   	public static function trimRight(targetString:String):String{
    63   		var tempIndex:Number = targetString.length-1;
    64   		var tempChar:String = "";
    65   		for(var i:Number=targetString.length-1 ; i>=0 ; i--){
    66   			tempChar = targetString.charAt(i);
    67   			if(tempChar != " "){
    68   				tempIndex = i;
    69   				break;
    70   			}
    71   		}
    72   		return targetString.substring(0 , tempIndex+1);
    73   	}
    74   	
    75   	public static function getCharsArray(targetString:String , hasBlankSpace:Boolean):Array{
    76   		var tempString:String = targetString;
    77  		if(hasBlankSpace == false){
    78  			tempString = trim(targetString);
    79  		} 		
    80   		return tempString.split("");
    81   	}
    82   	
    83   }
    84