package org.mangui.hls.utils { public class StringUtil { /** * Returns true if the specified string is * a single space, tab, carriage return, newline, or formfeed character. * * @param str The String that is is being queried. * * @return true if the specified string is * a single space, tab, carriage return, newline, or formfeed character. */ public static function isWhitespace(character:String):Boolean { switch (character) { case " ": case "\t": case "\r": case "\n": case "\f": case "\u00A0": // non breaking space case "\u2028": // line seperator case "\u2029": // paragraph seperator case "\u3000": // ideographic space return true; } return false; } /** * Removes all whitespace characters from the beginning and end * of the specified string. * * @param str The String whose whitespace should be trimmed. * * @return Updated String where whitespace was removed from the * beginning and end. */ public static function trim(str:String):String { if (str == null) return ''; var startIndex:int = 0; while (isWhitespace(str.charAt(startIndex))) ++startIndex; var endIndex:int = str.length - 1; while (isWhitespace(str.charAt(endIndex))) --endIndex; if (endIndex >= startIndex) return str.slice(startIndex, endIndex + 1); else return ""; } /** * Splits a String into an Vector of nicely trimmed strings, where each * item represents a single line of the original String data * * @param str The String to be split into an Array * @return Vector of type String */ public static function toLines(str:String):Vector. { var lines:Array = toLF(str).split("\n"); var i:uint; var length:uint = lines.length; for (i=0; i(lines); } /** * Converts strings containing Windows (CR-LF), MacOS (CR) and other * non-standard line breaks (LF-CR) into strings using only Linux-style * line breaks (LF). * * @param str String containing non-Linux line breaks * @returns String containly only Linux-style line breaks */ public static function toLF(str:String):String { return (str || "").replace(/\r\n|\n\r|\r/g, "\n"); } } }