Strings扩充String的功能

    技术2022-05-11  116

    以前见过一个JAVA的String扩充,后来找不到了. 又在EnFlash里头见到了Strings.这个类是对String的扩充, 我做了一点小小的补充.

    如下:

    // import编码/解码类

     

    import com.sshc625.utils.encrypt.Base8;

     

    import com. sshc625.utils.encrypt.Base64;

     

     

    /*

     

    * String类的扩充

     

    */

     

    class com. sshc625.utils.Strings

     

    {

     

        /*

     

        * 替换指定的字符---- 注意,必须是单个的字符。

     

        * @string:   被操作的字符串

     

        * @find:     需要被替换的字符

     

        * @replace:  新的字符

     

        * @sensitive 是否大小写敏感---- true表示区分大小写, false表示不区分大小写

     

        * @num:      替换的总数

     

        */

     

        public static function replace (string : String, find : String, replace : String, sensitive : Boolean, num : Number) : String

     

        {

     

            var temp : String = "";

     

            if (sensitive == undefined)

     

                sensitive = true;

     

            if (num != undefined)

     

            {

     

                var s : Number;

     

                if (sensitive)

     

                {

     

                    while (((s = string.indexOf (find)) != - 1) && num > 0)

     

                    {

     

                        temp += string.substr (0, s) + replace;

     

                        string = string.substr (s + find.length, string.length);

     

                        num --;

     

                    }

     

                    return temp + string;

     

                }

     

                else

     

                {

     

                    while (((s = string.indexOf (find.toUpperCase ())) != - 1) && num > 0)

     

                    {

     

                        temp += string.substr (0, s) + replace.toUpperCase ();

     

                        string = string.substr (s + find.length, string.length);

     

                        num --;

     

                    }

     

                    while (((s = string.indexOf (find.toLowerCase ())) != - 1) && num > 0)

     

                    {

     

                        temp += string.substr (0, s) + replace.toLowerCase ();

     

                        string = string.substr (s + find.length, string.length);

     

                        num --;

     

                    }

     

                    return temp + string;

     

                }

     

            }

     

            else

     

            {

     

                if (sensitive)

     

                {

     

                    return string.split (find).join (replace);

     

                }

     

                else

     

                {

     

                    temp = string.split (find.toLowerCase ()).join (replace);

     

                    temp = temp.split (find.toUpperCase ()).join (replace);

     

                    return temp;

     

                }

     

            }

     

        }

     

       

     

        /*

     

        * HTML标签过滤掉---- 过滤掉 '<' '>' 之间的内容 

     

        * 慎用,如果HTML标签过多容易导致死机,如果文本本声含有HTML标签也无法判断。

     

        *

     

        * 输入参数:

     

        * string - 传入参数

     

        */

     

        public static function removeHTML (string : String) : String

     

        {

     

            if(string.length == 0)

     

                return string;

     

           

     

            var temp : String = "";

     

            var s : Number;

     

            while ((s = string.indexOf ("<")) != - 1)

     

            {

     

                temp += string.substr (0, s);

     

                string = string.substr (string.indexOf (">") + 1, string.length);

     

            }

     

           

     

            return temp + string;

     

        }

     

       

     

       

     

        /*

     

        * 获得两个指定字符串之间的String

     

        *

     

        public static function getValue(str:String, begin:String, end:String):String

     

        {

     

            var beginIndex:Number = str.indexOf(begin);

     

            var endIndex:Number = str.indexOf(end);

     

           

     

            if(beginIndex<0 || endIndex<0 || beginIndex<endIndex)  return "";

     

           

     

            return str.substr(beginIndex, endIndex);

     

        }

     

        */

     

       

     

       

     

        /*

     

        * public static function LTrim

     

        * 去掉字符串左边的空格

     

        */

     

        public static function LTrim (s : String) : String

     

        {

     

            var result_str : String = "";

     

            for (var i = 0; i < s.length; i ++)

     

                if (s.substr (i, 1) != " ")

     

                    return s.substr (i);

     

                else if (i == s.length - 1)

     

                    return "";

     

                   

     

            return s;

     

        }

     

        /*

     

        * public static function RTrim

     

        * 去掉字符串右边的空格

     

        */

     

        public static function RTrim (s : String) : String

     

        {

     

            var result_str : String = "";

     

            for (var i = s.length - 1; i >= 0; i --)

     

                if (s.substr (i, 1) != " ")

     

                    return s.substr (0, i + 1);

     

                else if (i == 0)

     

                    return "";

     

                   

     

            return s;

     

        }

     

        /*

     

        * public static function Trim

     

        * 去掉字符串两端的空格

     

        */

     

        public static function Trim (s : String) : String

     

        {

     

            return LTrim (RTrim (s));

     

        }

     

       

     

        /*

     

        * 取散列码,允许提供不同的编码方式

     

        * 不提供编码方式则采用默认的编码为Base8+Base64

     

        *

     

        * 其他的编码方式扩展

     

        * hashCode(s, "编码方式1");

     

        * hashCode(s, "编码方式2");

     

        * hashCode(s, "编码方式3");

     

        */

     

        public static function hashCode(s:String):Number

     

        {

     

            var hashCode:Number = 0;

     

            if(arguments.length==1)

     

                hashCode = parseInt( Base8.encode(Base64.encode(s)) );

     

            // else if() {以后再说}

     

           

     

            return hashCode;

     

        }

     

       

     

        /*

     

        * JAVA提供的散列吗

     

        public int hashCode() {

     

            int h = hash;

     

            if (h == 0) {

     

                int off = offset;

     

                char val[] = value;

     

                int len = count;

     

                for (int i = 0; i < len; i++) {

     

                    h = 31*h + val[off++];

     

                }

     

                hash = h;

     

            }

     

            return h;

     

        }

     

        */

     

       

     

       

     

        /*

     

        * 该方法是重载方法。

     

        *

     

        * 如果参数_fmt不填,则采用默认文本格式器获得文字所需宽度/高度

     

        * 不抛出IllegalArgumentException,请确保参数输入合法。

     

        *

     

        * @param str:                     文本内容

     

        * @param width -- Number类型   :  换行处(可不填)

     

        * @param _fmt -- TextFormat类型:  文本格式器(可不填)

     

        * @return Object

     

        *

     

        * 返回一个Object,该Object具有以下属性:

     

        * widthheightascentdescenttextFieldHeighttextFieldWidth

     

        * 参考TextFormat类的getTextExtent方法。

     

        */

     

        public static function getTextExtent(str:String, width:Number, _fmt:TextFormat):Object

     

        {

     

            if(_fmt == null)

     

                var _fmt:TextFormat = new TextFormat();

     

           

     

            if(width == null)

     

                return _fmt.getTextExtent(str);

     

            else

     

                return _fmt.getTextExtent(str, width);

     

        }

       

         /**      * 一定要注意这个方法,我被它给坑了。注意下面的代码:      * var s1:String = new String("AAA");      * var s2:String = "BBB";      * trace(s1 instanceof String);       * trace(s2 instanceof String);       * trace((typeof s1) == "string");       * trace((typeof s2) == "string");      */     public static function toString(str):String {         if (str == undefined) {             return str;         }         //         if (typeof (str) == "string") {             return String(str);         } else if (str instanceof String) {             return str.toString();         } else {             return null;         }     }

    }

     

     

    import com.sshc625.utils.encrypt.Base8;

     

    import com. sshc625.utils.encrypt.Base64;

    来自包encrypt. 这是一个很有名的开源的加密包. 有时间好好写写学习笔记!

    下载地址也忘记了, 但是在百度上搜索encrypt关键字应该很容易找到, 稍微改一下路径,就可以据为己有了.呵呵!

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     


    最新回复(0)