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

首頁 > 網站 > WEB開發(fā) > 正文

15.2.如何創(chuàng)建一個自定義的Formatter

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

這些包含”#”號的字符串, 都會被所有傳遞給Formatter 的字符所代入。其工作原理十分簡單,就是以循環(huán)的方式, 把這個字符串里每個字符逐個代入, 最后得出一個已經格式化的字符串。
代碼如下:
+展開
-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 );
}
}
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿克苏市| 新乡市| 平谷区| 海淀区| 安岳县| 阿坝| 枣阳市| 泽库县| 会东县| 铁力市| 偏关县| 黄大仙区| 西宁市| 衡东县| 会东县| 河池市| 筠连县| 商水县| 清流县| 利津县| 红安县| 郎溪县| 师宗县| 嘉黎县| 峡江县| 浑源县| 法库县| 湘乡市| 彰武县| 岑巩县| 政和县| 芦山县| 稻城县| 衡山县| 泌阳县| 年辖:市辖区| 岫岩| 深泽县| 长阳| 石屏县| 宣武区|