Strings扩充String的功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sshcx/article/details/559586

以前见过一个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关键字应该很容易找到, 稍微改一下路径,就可以据为己有了.呵呵!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页