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

首頁 > 編程 > VBScript > 正文

用vbs將名稱轉換為正確的大小寫的代碼

2020-06-26 18:07:59
字體:
來源:轉載
供稿:網友
問: 
您好,腳本專家!我有一個腳本,我的幫助支持人員用它來創建用戶帳戶。不幸的是,有時這些幫助支持人員在忙亂中會鍵入類似這樣的名稱:kEn MYEr。如何將名稱轉換為正確的大小寫(即 Ken Myer)呢? 
-- LC 
答: 
您好,LC。您知道嗎:您真幸運。談到正確行事,腳本專家通常便是您最不愿意找的人。事實上,就我們所知,只有一種情況例外,那便是將名稱轉換為正確的大小寫,即,使名稱中的首字母大寫,而使其余字母小寫。這一點我們還是可以辦到的。 
注意:嘿,每個人都得能夠做點什么。盡管我們更希望能投出超過 Albert Pujols 的快球或贏取奧林匹克金牌,可不管怎樣,能夠將名稱轉換為正確的大小寫將是我們的下一個選擇。 
我們預先提醒您,執行此項任務的腳本可能看上去有點隱秘;這是因為 VBScript(不象 Visual Basic)并沒有用于將字符串轉換為正確大小寫的內置方法。不過沒關系,畢竟,如果事情太容易,那就沒有任何樂趣了: 
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 的變量;不用說,這便是我們需要轉換的兩個名稱。 
注意:是的,盡管不用說,不過我們還是說了。自己去想吧。 
先來看看首先應該如何入手,我們是以處理用戶的名字開始的。為此,我們使用 Len 函數確定字符串 kEn 中的字母數(對了:kEn 中有三個字母): 
intFirstName = Len(strFirstName) 
接下來,我們僅需要獲取該名稱的第一個字母,并將其轉換為大寫。這一點是通過一對函數組合來實現的。我們使用 Left 函數取得首字母,也就是,從該字符串的左邊取得一個字母(倘若您對此感到好奇,那么 1 就表示我們要獲取的字母數): 
Left(strLastName, 1) 
這樣,我們就會得到字母 k。然后,我們使用 UCase 函數將該字母轉換為大寫: 
UCase(Left(strLastName, 1)) 
現在我們有了大寫字母 K,我們將其存儲在一個名為 strFirstLetter 的變量中。這是太羅嗦了,不過所有這些步驟卻是通過一行代碼來執行的: 
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 
確實漂亮極了。而且還做得恰如其分! 
 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长白| 墨玉县| 南丰县| 杭州市| 宁远县| 沈丘县| 山阳县| 高唐县| 正阳县| 高碑店市| 通河县| 大兴区| 图木舒克市| 惠水县| 双流县| 织金县| 平乡县| 苗栗市| 孟村| 元氏县| 永川市| 道真| 静宁县| 弥勒县| 怀集县| 静海县| 方城县| 壤塘县| 东光县| 长沙市| 潼南县| 娄底市| 克拉玛依市| 铜川市| 宝坻区| 广灵县| 永川市| 正镶白旗| 江山市| 唐河县| 新建县|