以前见过一个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具有以下属性:
* width、height、ascent、descent、textFieldHeight、textFieldWidth
* 参考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关键字应该很容易找到, 稍微改一下路径,就可以据为己有了.呵呵!