国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

15.2.如何創建一個自定義的Formatter

2024-04-27 13:52:19
字體:
來源:轉載
供稿:網友
15.2.1 問題
假如你想創建一個自定義的formatter, 用來接收任何正確的字符串并以一個正確的格式來返回結果, 應怎么辦呢?
15.2.2 解決辦法
可以把Formatter 類擴展并把format 方法覆蓋重寫。
15.2.3 討論
在format 方法里頭, 可以創建一個名為SwitchSymbolFormatter 的成員并將一個特定格式的字符串傳遞給SwitchSymbolFormatter 的formatValue 方法, 這些包含著”#”號的字符串用來代入所需的內容的。舉例說, 如果把”###-###”這個格式及”123456”這個字符串的傳遞給formatValue 方法, 它就會返回”123-456”。這個結果正是由我們所自定義的formatter 類中的format 方法返回的。

這些包含”#”號的字符串, 都會被所有傳遞給Formatter 的字符所代入。其工作原理十分簡單,就是以循環的方式, 把這個字符串里每個字符逐個代入, 最后得出一個已經格式化的字符串。
代碼如下:
+展開
-ActionScript
package oreilly.cookbook{
import mx.formatters.Formatter;
import mx.formatters.SwitchSymbolFormatter;
public class ISBNFormatter extends Formatter
{
public var formatString : String = "####-##-####";
public function ISBNFormatter()
{
super();
}
override public function format(value:Object):String
{
//我們需要去檢查字符串的長度
//ISBN的長度可以分別為10或13位數
if( ! (value.toString().length == 10 ||
value.toString().length == 13) )
{
error="Invalid String Length";
return ""
}
//根據我們的format string的”#”號總數來計算
var numCharCnt:int = 0;
forvar i:int = 0; i<formatString.length; i++ ) {
if( formatString.charAt(i) == "#" ) {
numCharCnt++;
}
}
//如果我們不能給格式化的字符串提供長度符合的字符串的話
//這樣子就會返回一個錯誤!
if( ! (numCharCnt == 10 || numCharCnt == 13) ) {
error="Invalid Format String";
return ""
}
//如果formatString跟所提供的值都有效, 就把這個數目格式化.
var dataFormatter:SwitchSymbolFormatter =
new SwitchSymbolFormatter();
return dataFormatter.formatValue( formatString, value );
}
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大洼县| 从化市| 沿河| 介休市| 竹北市| 博白县| 东阿县| 白沙| 德钦县| 镇宁| 墨竹工卡县| 浠水县| 永定县| 格尔木市| 洱源县| 镇原县| 阿荣旗| 澎湖县| 华阴市| 浮梁县| 西乌珠穆沁旗| 安塞县| 上虞市| 库车县| 沁源县| 安化县| 房山区| 连平县| 宝清县| 广宁县| 吉隆县| 剑阁县| 丹棱县| 自治县| 莎车县| 广州市| 屯门区| 周宁县| 北海市| 甘肃省| 格尔木市|