summaryrefslogtreecommitdiff
path: root/webcam/com/adobe/utils/StringUtil.as
diff options
context:
space:
mode:
Diffstat (limited to 'webcam/com/adobe/utils/StringUtil.as')
-rw-r--r--webcam/com/adobe/utils/StringUtil.as257
1 files changed, 257 insertions, 0 deletions
diff --git a/webcam/com/adobe/utils/StringUtil.as b/webcam/com/adobe/utils/StringUtil.as
new file mode 100644
index 0000000..493fbd0
--- /dev/null
+++ b/webcam/com/adobe/utils/StringUtil.as
@@ -0,0 +1,257 @@
+/*
+ Adobe Systems Incorporated(r) Source Code License Agreement
+ Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+
+ Please read this Source Code License Agreement carefully before using
+ the source code.
+
+ Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+ no-charge, royalty-free, irrevocable copyright license, to reproduce,
+ prepare derivative works of, publicly display, publicly perform, and
+ distribute this source code and such derivative works in source or
+ object code form without any attribution requirements.
+
+ The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+ derived from the source code without prior written permission.
+
+ You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+ against any loss, damage, claims or lawsuits, including attorney's
+ fees that arise or result from your use or distribution of the source
+ code.
+
+ THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+ BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+ NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+ OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.utils
+{
+
+ /**
+ * Class that contains static utility methods for manipulating Strings.
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public class StringUtil
+ {
+
+
+ /**
+ * Does a case insensitive compare or two strings and returns true if
+ * they are equal.
+ *
+ * @param s1 The first string to compare.
+ *
+ * @param s2 The second string to compare.
+ *
+ * @returns A boolean value indicating whether the strings' values are
+ * equal in a case sensitive compare.
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function stringsAreEqual(s1:String, s2:String,
+ caseSensitive:Boolean):Boolean
+ {
+ if(caseSensitive)
+ {
+ return (s1 == s2);
+ }
+ else
+ {
+ return (s1.toUpperCase() == s2.toUpperCase());
+ }
+ }
+
+ /**
+ * Removes whitespace from the front and the end of the specified
+ * string.
+ *
+ * @param input The String whose beginning and ending whitespace will
+ * will be removed.
+ *
+ * @returns A String with whitespace removed from the begining and end
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function trim(input:String):String
+ {
+ return StringUtil.ltrim(StringUtil.rtrim(input));
+ }
+
+ /**
+ * Removes whitespace from the front of the specified string.
+ *
+ * @param input The String whose beginning whitespace will will be removed.
+ *
+ * @returns A String with whitespace removed from the begining
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function ltrim(input:String):String
+ {
+ var size:Number = input.length;
+ for(var i:Number = 0; i < size; i++)
+ {
+ if(input.charCodeAt(i) > 32)
+ {
+ return input.substring(i);
+ }
+ }
+ return "";
+ }
+
+ /**
+ * Removes whitespace from the end of the specified string.
+ *
+ * @param input The String whose ending whitespace will will be removed.
+ *
+ * @returns A String with whitespace removed from the end
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function rtrim(input:String):String
+ {
+ var size:Number = input.length;
+ for(var i:Number = size; i > 0; i--)
+ {
+ if(input.charCodeAt(i - 1) > 32)
+ {
+ return input.substring(0, i);
+ }
+ }
+
+ return "";
+ }
+
+ /**
+ * Determines whether the specified string begins with the spcified prefix.
+ *
+ * @param input The string that the prefix will be checked against.
+ *
+ * @param prefix The prefix that will be tested against the string.
+ *
+ * @returns True if the string starts with the prefix, false if it does not.
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function beginsWith(input:String, prefix:String):Boolean
+ {
+ return (prefix == input.substring(0, prefix.length));
+ }
+
+ /**
+ * Determines whether the specified string ends with the spcified suffix.
+ *
+ * @param input The string that the suffic will be checked against.
+ *
+ * @param prefix The suffic that will be tested against the string.
+ *
+ * @returns True if the string ends with the suffix, false if it does not.
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function endsWith(input:String, suffix:String):Boolean
+ {
+ return (suffix == input.substring(input.length - suffix.length));
+ }
+
+ /**
+ * Removes all instances of the remove string in the input string.
+ *
+ * @param input The string that will be checked for instances of remove
+ * string
+ *
+ * @param remove The string that will be removed from the input string.
+ *
+ * @returns A String with the remove string removed.
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function remove(input:String, remove:String):String
+ {
+ return StringUtil.replace(input, remove, "");
+ }
+
+ /**
+ * Replaces all instances of the replace string in the input string
+ * with the replaceWith string.
+ *
+ * @param input The string that instances of replace string will be
+ * replaces with removeWith string.
+ *
+ * @param replace The string that will be replaced by instances of
+ * the replaceWith string.
+ *
+ * @param replaceWith The string that will replace instances of replace
+ * string.
+ *
+ * @returns A new String with the replace string replaced with the
+ * replaceWith string.
+ *
+ * @langversion ActionScript 3.0
+ * @playerversion Flash 9.0
+ * @tiptext
+ */
+ public static function replace(input:String, replace:String, replaceWith:String):String
+ {
+ //change to StringBuilder
+ var sb:String = new String();
+ var found:Boolean = false;
+
+ var sLen:Number = input.length;
+ var rLen:Number = replace.length;
+
+ for (var i:Number = 0; i < sLen; i++)
+ {
+ if(input.charAt(i) == replace.charAt(0))
+ {
+ found = true;
+ for(var j:Number = 0; j < rLen; j++)
+ {
+ if(!(input.charAt(i + j) == replace.charAt(j)))
+ {
+ found = false;
+ break;
+ }
+ }
+
+ if(found)
+ {
+ sb += replaceWith;
+ i = i + (rLen - 1);
+ continue;
+ }
+ }
+ sb += input.charAt(i);
+ }
+ //TODO : if the string is not found, should we return the original
+ //string?
+ return sb;
+ }
+ }
+} \ No newline at end of file