skip to main |skip to sidebar
显示标签为“String”的博文。显示所有博文
显示标签为“String”的博文。显示所有博文

2008年1月10日

[AS3]给字符串加上N个字符使长度达到指定的值

需要repect 函数。请参见[AS3]高速重复字符串

/**
* 在左边加上N个字符,使长度达到length。比如:lpad("abc", 5, "1")//->11abc
*
* @param str 源字符串.
* @param 长度
* @param ch 字符,长度必须为1.
*
* @return 更新后的字符串.
*/

public static function lpad(str:String, length:int, ch:String = " "):String {
if(str.length >= length) {
return str;
}
if(ch.length != 1) {
throw new SyntaxError("ch.length must be 1.");
}
return repeat(ch, length - str.length) + str;
}

/**
* 在右边加上N个字符,使长度达到length。比如:rpad("abc", 5, "1")//->abc11
*
* @param str 源字符串.
* @param 长度
* @param ch 字符,长度必须为1.
*
* @return 更新后的字符串.
*/

public static function rpad(str:String, length:int, ch:String = " "):String {
if(str.length >= length) {
return str;
}
if(ch.length != 1) {
throw new SyntaxError("ch.length must be 1.");
}
return str + repeat(ch, length - str.length);
}

2008年1月9日

[AS3]高速重复字符串

/**
* 重复 str times 次。
* @param str 源字符串。
* @param times 重复次数。
* @return 结果
*/

public static function repeat(str:String, times:int):String {
if(times <= 0)
return "";
return $repeat(str, times);
}

/**
* @private
*
* 重复 str times 次。
* @param str 源字符串。
* @param times 重复次数。
* @return 结果
*/
private static function $repeat(str:String, times:int):String {
/*
* | s (n = 1)
* f(s,n)=| f(s, n/2)*2 (n % 2 = 0)
* | s + f[s, (n-1) / 2]*2 (n % 2 = 1)
*/
var tmp:String;
if(times == 1)
return str;
if(times % 2 == 0) {
tmp = $repeat(str, times / 2)
return tmp + tmp;
} else {
tmp = $repeat(str, (times - 1) / 2)
return str + tmp + tmp;
}
}

2008年1月8日

[AS3]删除字符串的空白

需要 mx.utils.StringUtil

/**
* 删除左边的空白(空格、\t、\r、\n、\f)。
* @param str 要被删除空白的字符串。
* @return 删除空白后的字符串。
*/

public static function ltrim(str:String):String {
var startIndex:int = 0;
while (StringUtil.isWhitespace(str.charAt(startIndex))) {
startIndex++;
}
return str.slice(startIndex, -1);
}

/**
* 去掉右边的空白(空格、\t、\r、\n、\f)。
* @param str 要被删除空白的字符串。
* @return 删除空白后的字符串。
*/

public static function rtrim(str:String):String {
var endIndex:int = str.length - 1;
while (StringUtil.isWhitespace(str.charAt(endIndex))) {
endIndex--;
}
return str.slice(0, endIndex + 1);
}