iT邦幫忙

DAY 5
4

程式設計心法系列 第 5

程式設計心法:4.資料型別--字元與字串

今天我們要介紹的是字元與字串的使用技巧

String 型別算是程式設計中最常用的一種型別了
舉凡訊息的顯示, 條件的判斷等等都會使用到他

而現在的程式語言, String 型別的空間都已經幫您做好最佳的配置, 不用像以前學 C 語言
要自行去分配 String 的使用空間(如 malloc) , 以及字串結尾的判定 (\0)
如同我們在前面的數字篇當中所提的魔術數字一樣, 字元與字串的使用調避免魔術字元或字串的問題, 怎麼說呢?

一般我們常會使用條件是的判斷, 判斷某變數的值是否等於某個字串值, 如:

if x="字串A" then
...

當這個字串的值的判斷需要出現在很多地方時, 以後要更, 就必須要將程式的專案整個 scan 一遍, 去改變他的值, 甚者程式還要重新編譯, 才能夠再上線運作

所以比較好的方式, 是使用具名常數(Constant)來取代魔術字元或字串的使用, 這樣程式在維護上會比較方便

尤其在現在多國語言的環境中, 我們不可能為每一種語言去編寫同樣的程式但不同的顯示字串, 因為這樣在資源的運用上是很浪費的, 同時也提高很多的維護成本
所以現在的程式語言都會提供資源檔或設定檔的使用方式, 來提高程式的維護性, 與適應多國語言的環境來使用

資源檔, 從早期的 ini 檔開始, 一直就是程式設計師所常使用的一種方式, 後來像 Windows 的 Registry Repository 以及 java 語言的 properties 檔也都是同樣的概念, 甚至於最新的網頁程式設計所使用的 XML 格式, 都是來幫助我們解決上述問題的一種方式(當然更大的用途, 是在做參數的設定與調整)

我記得以前有幸在跨國軟體公司服務的時候, 當時一個頁面的推出都要有英文, 繁中, 簡中, 日文, 法文, 德文等多種版本, 在只熟悉繁體及英文的情況下, 透過跨國的聯繫來取得所需要的文字對應檔, 是當時很重要的工作之一
現今則有很多翻譯的軟體可以來做這些事情, 但機器翻的畢竟讀起來就少了那麼一點人性

好了, 今天就介紹到這邊, 期望明天的大富翁大家都能夠抽中大獎, 加油!

註:當然跨國軟體公司一定會有專門做翻譯的部門, 只是 IS 單位是無法去使用這些資源的, 因為她們只服務產品線的軟體, 所以常要跟各國的對應窗口聯繫, 完成該項工作

本系列文章


上一篇
程式設計心法:3.資料型別--浮點數
下一篇
程式設計心法:5.資料型別--布林變數
系列文
程式設計心法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
pantc328
iT邦高手 1 級 ‧ 2009-10-11 11:11:30

string 在某些語言.如 .NET 他的特性介於Value Type 跟 Reference Type這種很抽象的特性.
這種特性很奇怪.我也不要去別解釋.
如果大量對string 做運算的話.效能會很差.
比如:
string a="One ";
a+="Two ";
a+="Three ";
.
.
.
這總效能會很差.
a雖然只是一個變數.但在.NET他其實是不斷的配置a這個變數.
所以改成
StringBuilder sb=new StringBuilder();
sb.Appled("One ");
sb.Appled("Two ");
sb.Appled("Tree ");
sb.Appled("Four ");
.
.
.
對系統效能會比較好.

0
alexc
iT邦高手 1 級 ‧ 2009-10-11 14:34:16

感覺文章沒騷到癢處
講到重點

jamesjan iT邦高手 1 級 ‧ 2009-10-12 08:27:46 檢舉

感謝指點,後續會再加強 ^^

0
海綿寶寶
iT邦大神 1 級 ‧ 2009-10-12 08:51:21

以前剛學C的時侯
老是忘了在最後面加'\0'

然後一碰到printf字串
畫面就#@#!$!#@!#@$(嘟嘟..)
蛋掉了....Orz

我要留言

立即登入留言