加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex(actionscript3.0)字符串处理类库(自定义)

发布时间:2020-12-15 01:19:51 所属栏目:百科 来源:网络整理
导读:做项目的过程中,难免要用到一些个公共的处理类,比如 字符串 日期 格式化 数组等。本人写的一个字符串处理类,希望大家指点交流。 功能包括: 1,处理xml相关的字符,因为在跟后台java打交道时,这个问题经常遇到:把xml里面的特殊字符转换成替代字符 2,判断

做项目的过程中,难免要用到一些个公共的处理类,比如 字符串 日期 格式化 数组等。本人写的一个字符串处理类,希望大家指点交流。

功能包括:

1,处理xml相关的字符,因为在跟后台java打交道时,这个问题经常遇到:把xml里面的特殊字符转换成替代字符

2,判断空

3,去除两头的空格

4,取得指定字符在串中的位置

5,截取字符串

6,从开始下标截取一定长度的字符串

7,将字符串转换为数组

8,替换字符串

9,替换全部字符串

10,反转字符: abc==>cba

11,取得某个字符的ASCII码

12,取得某个位置的字符

13,大小写转换

14,将字符转换成boolean值

15,去除头部的空格

16,去除尾部的空格

17,是否以某个字符串开头

18,是否以某个字符串开头[忽略大小写]

19,判断是否以某个字符串结尾

20,判断是否以某个字符串结尾[忽略大小写]

21,判断是否是数字

22,比较是否相同

23,按照某个标识分割成数组

24,判断是否包含

25,与UTF-8编码的相互转换

////////////////////////////////////////////////////////////////////////////////?
//?
// My System?
// Copyright 2008-2009 My Systems Incorporated?
// All Rights Reserved.?
//?
// NOTICE: My System permits you to use,modify,and distribute this file?
// Langversion ActionScript 3.0?
// playerversion Flash 9.0?
// DATE: 2008-12-04 keren?
// QQ: 84129751?
// MSN:?keren1515@hotmail.com?
//?
////////////////////////////////////////////////////////////////////////////////?
package org.app.utils.common?
{?
??? import mx.utils.StringUtil;?
??? /**?
???? * 注意:unnnn,表示十六进制的unicode编码;?
???? *????? xnn,表示十六进制的ascii编码;?
???? */?
??? public class MyStringUtils?
??? {?
??????? private static var instance:MyStringUtils;?
??????? public static function getInstance():MyStringUtils{?
??????????? if(instance == null){?
??????????????? instance = new MyStringUtils(new SingletonEnforcer());?
??????????? }?
??????????? return instance;?
??????? }?
??????? public function MyStringUtils(enforcer:SingletonEnforcer)?
??????? {?
??????????? if(enforcer==null)throw new Error("This class is singletonEnforcer.");?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? public static var C_EMPTY:String = "";//空?
??????? public static var C_BLANK:String = " ";//空格?
??????? public static var C_NEW_LINE:String = "n";//新行?
??????? public static var C_TAB:String = "t";//Tab符?
??????? public static var C_BACKSAPCE:String = "b";//回退符?
??????? public static var C_NEXTPAGE:String = "f";//制表符(换页格式符)?
??????? public static var C_RETURN:String = "r";//回车符?
??????? /** 用在 encodeXML(String) 和 decodeXML(String) */?
??????? private var translateArray:Array = [?
??????????? [ "&","&" ],//这个要放在第一位
??????????? [ " "," "],
??????????? [ "<","&lt;" ],
??????????? [ ">","&gt;" ],
??????????? [ ""","&quot;" ],
??????????? [ "'","&apos;" ],
??????????? [ "","&szlig;" ],"&quot;" ]?
??????? ];?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 把xml里面的特殊字符转换成替代字符?
???????? */?
??????? public function encodeXML(text:String):String{?
??????????? var s:String = text;?
??????????? for (var i:int = 0; i < translateArray.length; i++) {?
??????????????? s = this.replaceAll(s,translateArray[i][0],translateArray[i][1]);?
??????????? }?
??????????? return s;?
??????? }?
??????? /**?
???????? * 把替代字符还原成xml字符?
???????? */?
??????? public function decodeXML(text:String):String{?
??????????? var s:String = text;?
??????????? for (var i:int = 0; i < translateArray.length; i++) {?
??????????????? s = this.replaceAll(s,translateArray[i][1],translateArray[i][0]);?
??????????? }?
??????????? return s;?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 判断空?
???????? */?
??????? public function isEmpty(str:String):Boolean{?
??????????? if(str == null)return true;?
??????????? str = this.trim(str);?
??????????? if(str == null || str.length<=0)return true;?
??????????? return false;?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 去除两头的空格?
???????? */?
??????? public function trim(str:String):String{?
??????????? return StringUtil.trim(str);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 取得字符串位置?
???????? * @param String src 操作的字符串?
???????? * @param String str 匹配的串?
???????? * @param int index 开始的位置[默认值:0]?
???????? *?
???????? * @return int 返回匹配的位置,-1表示没有匹配的?
???????? */?
??????? public function indexOf(src:String,str:String,index:int=0):int{?
??????????? //if(this.isEmpty(src)||this.isEmpty(str))return -1;?
??????????? return src.indexOf(str,index);?
??????? }?
??????? /**?
???????? * 取得字符串位置?
???????? * @param String src 操作的字符串?
???????? * @param String str 匹配的串?
???????? * @param int index 开始的位置[默认值:字符串长度-1]?
???????? *?
???????? * @return int 返回匹配的位置,-1表示没有匹配的?
???????? */?
??????? public function lastIndexOf(src:String,index:int=-1):int{?
??????????? //if(this.isEmpty(src)||this.isEmpty(str))return -1;?
??????????? //if(index==-1)index=src.length-1;//默认值:字符串长度-1?
??????????? //return src.lastIndexOf(str,index);?
?????????????
??????????? if(index == -1)?
??????????????? return src.lastIndexOf(str);?
??????????? else?
??????????????? return src.lastIndexOf(str,index);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 截取字符串?
???????? * [注] 1,substring方法中,如果参数为负数,会自动转化为0;?
???????? *????? 2,substring方法中,如果结束下标小于开始下标,表示反向截取;?
???????? * @param String src 源串?
???????? * @param int start 起始位置?
???????? * @param int end 结束位置?
???????? *?
???????? * @return String 截取的串?
???????? */?
??????? public function subString(src:String,index_start:int=0,?
??????????????????????????????? index_end:int=-1):String{?
??????????? if(index_end ==-1){?
??????????????? return src.substring(index_start);?
??????????? }else{?
??????????????? return src.substring(index_start,index_end);?
??????????? }?
??????? }?
?????????
??????? /**?
???????? * 从开始下标截取一定长度的字符串?
???????? * [注]start:-1表示倒数第一个字符;-2表示倒数第二个字符,依次类推;?
???????? *???? 若指定的长度超过了剩余的长度,则取剩余的全部长度;?
???????? * @param String src 源串?
???????? * @param int start 开始位置?
???????? * @param int length 截取长度?
???????? *?
???????? * @return String 截取的串?
???????? */?
??????? public function substr(src:String,start:int,length:int=-1):String{?
??????????? if(length ==-1){?
??????????????? return src.substr(start);?
??????????? }else{?
??????????????? return src.substr(start,length);?
??????????? }?
??????? }?
?????????
??????? // search(正则表达式) match()?????/?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 将字符串转换为数组?
???????? * @param String src 源串?
???????? * @param String ch 标识串?
???????? *?
???????? * @return Array 以标识分割的字符串数组?
???????? */?
??????? public function toArray(src:String,ch:String):Array{?
??????????? return src.split(ch);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 替换字符串?
???????? * @param String src 源串?
???????? * @param String from_ch 被替换的字符?
???????? * @param String to_ch 替换的字符?
???????? * @param Boolean rp_all 是否替换掉全部匹配字符,true:是|false:否?
???????? *?
???????? * @return String 结果字符串?
???????? */?
??????? public function replace(src:String,from_ch:String,?
??????????????????????? to_ch:String,rp_all:Boolean=false):String{?
??????????? while(src.indexOf(from_ch)!=-1){?
??????????????? src = src.replace(from_ch,to_ch);?
??????????????? if(!rp_all)return src;?
??????????? }?
??????????? return src;?
??????? }?
??????? /**?
???????? * 替换全部字符串?
???????? * @param String src 源串?
???????? * @param String from_ch 被替换的字符?
???????? * @param String to_ch 替换的字符?
???????? *?
???????? * @return String 结果字符串?
???????? */?
??????? public function replaceAll(src:String,?
??????????????????????????????? to_ch:String):String{?
??????????? return src.split(from_ch).join(to_ch);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 反转字符: abc==>cba?
???????? * @param String src 源串?
???????? *?
???????? * @return String 反转之后的串?
???????? */?
??????? public function reverse(src:String):String{?
??????????? var arr:Array = src.split("");?
??????????? arr = arr.reverse();?
??????????? return arr.join("");?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 取得某个字符的ASCII码?
???????? */?
??????? public function charCodeAt(src:String,index:int):int{?
??????????? return src.charCodeAt(index);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 取得某个位置的字符?
???????? */?
??????? public function charAt(src:String,index:int):String{?
??????????? return src.charAt(index);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 大小写转换?
???????? */?
??????? public function toUpperCase(src:String):String{?
??????????? return src.toUpperCase();?
??????? }?
??????? public function toLowerCase(src:String):String{?
??????????? return src.toLowerCase();?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 将字符转换成boolean值?
???????? */?
??????? public function booleanValue(src:String):Boolean{?
??????????? var trimmed:String = this.trim(src).toLowerCase();?
??????????? return trimmed == "true"?
??????????????? || trimmed == "t"?
??????????????? || trimmed == "yes"?
??????????????? || trimmed == "1";?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 去除头部的空格?
???????? */?
??????? public function trimLeadingWhitespace(src:String):String{?
??????????? var ch:String;?
??????????? var index:int = 0;?
??????????? while((ch = src.charAt(index)) == C_BLANK){?
??????????????? index++;?
??????????? }?
??????????? return this.subString(src,index);?
??????? }?
??????? /**?
???????? * 去除尾部的空格?
???????? */?
??????? public function trimTrailingWhitespace(src:String):String{?
??????????? var ch:String;?
??????????? var index:int = src.length-1;?
??????????? while((ch = src.charAt(index)) == C_BLANK){?
??????????????? index--;?
??????????? }?
??????????? return this.subString(src,index+1);//注意这里要+1?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 是否以某个字符串开头?
???????? */?
??????? public function startsWith(src:String,prefix:String):Boolean{?
??????????? if(this.isEmpty(src) || this.isEmpty(prefix)) return false;?
??????????? if(src.length < prefix.length) return false;?
??????????? return src.indexOf(prefix) == 0;?
??????? }?
?????????
??????? /**?
???????? * 是否以某个字符串开头[忽略大小写]?
???????? */?
??????? public function startsWithIgnoreCase(src:String,prefix:String):Boolean{?
??????????? if(this.isEmpty(src) || this.isEmpty(prefix)) return false;?
??????????? if(src.length < prefix.length) return false;?
??????????? var tmp:String = src.toLowerCase();?
??????????? var s:String = prefix.toLowerCase();?
??????????? return tmp.indexOf(s) == 0;?
??????? }?
??????? /**?
???????? * 是否以某个字符串结尾?
???????? */?
??????? public function endsWith(src:String,suffix:String):Boolean{?
??????????? if(this.isEmpty(src) || this.isEmpty(suffix)) return false;?
??????????? if(src.length < suffix.length) return false;?
??????????? return src.lastIndexOf(suffix) == src.length - suffix.length;?
??????? }?
??????? /**?
???????? * 是否以某个字符串结尾[忽略大小写]?
???????? */?
??????? public function endsWithIgnoreCase(src:String,suffix:String):Boolean{?
??????????? if(this.isEmpty(src) || this.isEmpty(suffix)) return false;?
??????????? if(src.length < suffix.length) return false;?
??????????? var tmp:String = src.toLowerCase();?
??????????? var s:String = suffix.toLowerCase();?
??????????? return tmp.lastIndexOf(s) == tmp.length - s.length;?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 是否是数字?
???????? */?
??????? public function isNumeric(src:String):Boolean{?
??????????? if (this.isEmpty(src)) return false;?
??????????? var regx:RegExp = /^[-+]?d*.?d+(?:[eE][-+]?d+)?$/;?
??????????? return regx.test(src);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 是否相同?
???????? */?
??????? public function equals(src:String,dest:String):Boolean{?
??????????? return src == dest;//??????
??????? }?
??????? public function equalsIgnoreCase(src:String,dest:String):Boolean{?
??????????? var t:String = src.toLowerCase();?
??????????? var s:String = dest.toLowerCase();?
??????????? return s == t;//??????
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 按照某个标识分割成数组?
???????? */?
??????? public function split(src:String,flg:String):Array{?
??????????? return src.split(flg);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 包含?
???????? */?
??????? public function contains(src:String,flg:String):Boolean{?
??????????? return src.indexOf(flg) !=- 1;?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? /**?
???????? * 把字符串转换成UTF-8的编码?
???????? */?
??????? public function encodeUTF(src:String):String{?
??????????? return encodeURIComponent(src);?
??????? }?
??????? /**?
???????? * 从UTF-8转换成原来的编码?
???????? */?
??????? public function decodeUTF(src:String):String{?
??????????? return decodeURIComponent(src);?
??????? }?
??????? ////////////////////////////////////////////////////////////////////////?
??????? ////////////////////////////////////////////////////////////////////////?
??????? ////////////////////////////////////////////////////////////////////////?
??????? ////////////////////////////////////////////////////////////////////////?
??? }//end class?
?????
}//end package?
/**?
* 这里使用了一个内部类 SingletonEnforcer ,?
* 在类对外是无法访问的,所以巧妙的阻止了用new来创建,?
* 但还是能使用 new Singleton(null) 来创建。?
*/?
class SingletonEnforcer {}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kunshan_shenbin/archive/2009/02/24/3933169.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读