国产探花免费观看_亚洲丰满少妇自慰呻吟_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 );
}
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岫岩| 西乌| 彰化县| 阆中市| 呼伦贝尔市| 行唐县| 灵石县| 东乌珠穆沁旗| 昭苏县| 温州市| 浏阳市| 汉川市| 阿坝| 彝良县| 奉化市| 北海市| 全南县| 拉孜县| 满洲里市| 若羌县| 宜春市| 临沧市| 晋宁县| 桂平市| 中江县| 六盘水市| 荥经县| 芷江| 清镇市| 千阳县| 溧水县| 台安县| 南充市| 敦化市| 桦川县| 桃园市| 沁水县| 东兰县| 东乡族自治县| 会泽县| 长武县|