各位不知道有沒有遇到過
客戶要求顯示的資料中,阿拉伯數字一律改成中文的數字表示方式?
說真的 坎尼的同事就遇到過 (總覺得這種要求只會在台灣看到)
不過他是要改成全型的顯示方式:1→1 2→2
所以坎尼就教他一個投機的方式
先建立一個array依序存放著 0~9 的其他表示方式
再將該需要轉換的數字直接丟進去就好
今天中午休息前又想到這個東西 (距離跟我同事提已經過了一個多月)
所以下班後又做了個轉換method 以下是部份程式說明
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX-qY55Q-x9mBBKFprM36ujYKTnh274eVQGmQM4i8NFEb13sf83SQfdtS_Mg5hGFTYrNsnSFQosR6aao_DY0MwXSXYYK5JDm6-4MYRMRWl9YocfKsaeEWycFKf2Vxl5WI7doX8f7OHjIcr/s400/arabic3.png)
這是aspx中的畫面,上方的TextBox是user輸入文字框
下方的TextBox是轉換過顯示的文字
Button "轉換" ,不用說,當然是發生轉換事件啦
另外坎尼加上ScriptManager及updatePanel,讓轉換過程不閃畫面
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq981E98xoHDvJCgyo1biRsv930S_XUKJ9ARI01MiXqzdctj2mzre5UUXG1xbNWZPcH4YNTGUw6UgvPnp6HjYklChaI5gWWCYdOT-B4on_LHCmSCrYtHeJhAE5xVI_8icvsXSkOlnj4bCF/s400/arabic1.png)
上圖就是轉換的method
首先,在method裡建立所要轉換的char[] array
再將傳入的index丟入array中,並回傳
method要傳入的參數有兩個,第一是數字的index,第二是type
這個type各位可以自訂,圖中我是隨便用1234來帶過
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC1Cgz5EPiSiWxVDxF9vumwVSssqmrrv5jvsP3eguuTcotGrEjKLYU38nbptEkQ3_PNjFHiTRbkaO6AzGyJmzizHC8bt1ZLVTTLURGXvKkDtlAqx-UzAoyMccHjhJvfIL8RJYU_i-qdNzn/s400/tn_ed2.png)
上圖是"轉換"按鈕按下發生的事件
重點是先將輸入的文字轉為charArray (用 .ToCharArray方法)
再將char轉成Int一個一個傳入method中
20090508 修正:
其實這邊要用 char.IsNumber 的方式來判斷才對
用 try catch 對於大量文字的轉換效能極差
(圖也修正為用 char.IsNumber 的方法)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8mDd2QhOo997MKgT-P5iR3MBfREFyuVXrG5DUjpKFjpoN0riAB8-9CRl3EeDzEpkQf91QY_6uii-f_wwQC5alU8qSzjNvHNxzptt98dwaxqkIzU3dDaJIka1gX9gBHdVzrYeqzjxJTNkg/s400/arabic4.png)
上圖是程式執行畫面,轉換Type是第3種 (也就是一二三四五那個)
2 則留言:
没有下载的链接?
不好意思 我大部分都只放抓圖
要source code或是其他檔案
請另外留下 email 或是私下寄信 感謝
張貼留言