strFirstName = "kEn"
strLastName = "MYEr"
intFirstName = Len(strFirstName)
strFirstLetter = UCase(Left(strFirstName, 1))
strRemainingLetters = LCase(Right(strFirstName, intFirstName - 1))
strFirstName = strFirstLetter & strRemainingLetters
intLastName = Len(strLastName)
strFirstLetter = UCase(Left(strLastName, 1))
strRemainingLetters = LCase(Right(strLastName, intLastName - 1))
strLastName = strFirstLetter & strRemainingLetters
Wscript.Echo strFirstName, strLastName
讓我們引領讀者一步步瞭解:首先把 kEn 和 MYEr 這兩個值分別指派給 strFirstName 和 strLastName 變數,而這正是要轉換大小寫的名字。
附註:我們很清楚最後一句讀者鐵定知道了,反正說也說了,自己去琢磨吧! |
反正先到先贏,我們就先來處理使用者的名字吧 (英文的 first name 通常放在前面)!使用 Len 函數判斷字串 kEn 內的英文字母有幾個 (猜對了,kEn 有 3 個字母):
intFirstName = Len(strFirstName)
接下來只要抓取名字的第一個英文字母將它轉換成大寫,方法是合併一組函數,利用 Left 函數取得第一個字母,也就是字串左邊的第一個字母 (1 代表要擷取的字母有幾個):
Left(strLastName, 1)
這樣就取得字母 k。然後使用 UCase 函數將字母轉成大寫:
UCase(Left(strLastName, 1))
這樣 strFirstLetter 裡就有大寫字母 K。這麼多事情只要這短短一行指令碼就可以做到:
strFirstLetter = UCase(Left(strLastName, 1))
看到它是怎麼運作的吧?好,接下來要將名稱內所有剩餘的字母轉成小寫,也就是這一行程式碼所進行的動作:
strRemainingLetters = LCase(Right(strLastName, intLastName - 1))
沒錯,看起來真的很複雜。讓我們為各位看倌一一拆解。它的目的是取得名字裡的所有字母 (除了第一個)。方法是使用 Right 函數,從右邊開始取得 x 個字母。x 代表什麼?本例中 x 代表字串字母總數減 1 (也就是 3 – 1 = 2)。答案是 En (也就是我們要的),K 已經被拿掉了。
有道理嗎?下面就是剛才說明的動作所執行的程式碼:
Right(strLastName, intLastName - 1)
現在該拿這些字母怎麼辦呢?很簡單,這一次使用 LCase 函數把每個字母轉成小寫:
LCase(Right(strLastName, intLastName - 1))
然後把這些小寫字母存放在 strRemainingLetters 變數內:
strRemainingLetters = LCase(Right(strLastName, intLastName - 1))
沒錯,的確是稍嫌複雜。您只要把程式演練一兩回,應該就會懂了。您也可以將指令碼稍加修改,先處理 Left/Right 的部分,然後才呼叫 UCase 或 LCase:
intFirstName = Len(strFirstName)
strFirstLetter = Left(strFirstName, 1)
strFirstLetter = UCase(strFirstLetter)
strRemainingLetters = Right(strFirstName, intFirstName - 1)
strRemainingLetters = LCase(strRemainingLetters)
如果逐步解說對您有用,那就繼續依樣畫葫蘆吧。
首先來重新組合使用者的名字。方法是使用 strFirstLetter 變數 (裡頭包含使用者名字的大寫字母),把它和 strRemainingLetters 接在一塊 (裡頭包含使用者名字剩餘的小寫字母)。
strFirstName = strFirstLetter & strRemainingLetters
針對姓氏重複一樣的步驟,回應使用者的「新」名字和姓氏。
Wscript.Echo strFirstName, strLastName
得到的結果是什麼呢?
Ken Myer
漂亮吧?這樣就大功告成! |