嗔秤戻幣�哉膵�云利匈嬉蝕湊蛸賜�塋床四衲���萩晦編報炎嘔囚^泡仟 ̄云利匈�《超噌�殻窟�嵌虜隆輓麈觚翹瀘卉韮�仍仍�。� 烏御危列
浪慕利 卦指云慕朕村 厘議慕尺 厘議慕禰 TXT畠云和墮 序秘慕杏 紗秘慕禰

VB2008貫秘壇欺娼宥(PDF鯉塀哂猟井)-及27嫗

梓囚徒貧圭�鮗� ○ 賜 ★ 辛酔堀貧和鍬匈��梓囚徒貧議 Enter 囚辛指欺云慕朕村匈��梓囚徒貧圭�鮗� ● 辛指欺云匈競何��
!!!!隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��




                Figure 3´9 shows the working solution。 



                                 Chaining ToLower�┌� and 

                               Trim�┌� together first obtains                 ToLower�┌� returns a 

                               the result of ToLower�┌� and                    lowercase copy of 

                                 then applies Trim�┌� to it                     the original string 



           Public Class Translator 

               Public Shared Function TranslateHello��ByVal input _ 

           As String�� As String 

                   Dim temp As String = input。ToLower�┌�。Trim�┌� 



                   If temp。pareTo�─�hello;�� = 0 Then 

                       Return ;hallo; 

                   ElseIf temp。pareTo�─�allo;�� = 0 Then 

                       Return ;hallo; 

                   End If                                            Trim�┌� removes whitespace 



                   Return ;; 

           End Function 

           End Class 



           Figure 3´9。  The final translation solution 


´´´´´´´´´´´´´´´´´´´´´´Page 87´´´´´´´´´´´´´´´´´´´´´´´

                                              CH AP T E R   3   *    L E AR N IN G   AB O U T   ST R I N G   M A N I PU L A TI O N S  65 



      Looking at the solution�察�you see that there are elements from the first solution�察�which was  

discounted because it did not work properly。 This is an example of how quickly solving a bug�察 �

seeing that code fail�察�and discounting the solution can be incorrect。 You need to think through  

why something fails�察�and not just fix the bug to get rid of it。 



*Note  All of the solutions involved use String type methods。 The  String type is very sophisticated and  

supports many operations that are monly performed on text。 



     At this point�察�we are finished with the translation of the greeting。 Next�察�I¨ll point out a couple of  

additional items that you need to keep in mind when dealing with strings。 



Quoting Strings 



Along with strings�察�Visual Basic has the Char type。 A Char can be described as a single letter of a  

sentence。 However�察�it would be more accurate to say that it is a single character。 You can assign  

a string to a Char type�察�as long as Option Strict is Off ��which it is by default��。 For example�察�suppose  

you wrote the following code to assign a string to the variable val。 



 ' The Option Strict declaration must e right at the top of your code 

Option Strict Off 

 。 。 。 

Dim val As Char 

val = ;hello; 



     The example piles�察�but you will not get what you want。 Because Option Strict is Off�察 �

the string is converted to a character。 In this conversion�察�data is lost!specifically�察�the characters  

ello are lost。 The value stored in the variable val is the single letter h。 

      If Option Strict were On�察�the example would not pile。 When Option Strict is On�察�the  

piler does not do conversions where data might be lost。 If you have code that does attempt  

a conversion�察�an error will be flagged by the piler。  

      If you really wanted to store the single letter h in the variable val�察�you would need to explicitly  

define the character to be assigned to the variable�察�as follows�此�



Option Strict On 

 。 。 。 

Dim val As Char 

val = ;h;c 



     To define a single´character string�察�you enclose that character in double quotation marks�察 �

followed by a lowercase c to indicate that the single´character string is a character。 


´´´´´´´´´´´´´´´´´´´´´´Page 88´´´´´´´´´´´´´´´´´´´´´´´

66          CH AP T E R   3   *    L E A R N IN G   AB OU T   ST R I N G   M A N I P U L AT IO N S   



                                                   VISUAL BASIC STRICT AND EXPLICIT 



                Programming languages have two distinct flavors�此�static typed and dynamic typed。 Do not get these two terms  

                confused with the terms strongly typed and  weakly typed。 Those two sets of terms are orthogonal to each  

                other。 A language can be dynamic typed and strongly typed at the same time。 For example�察�the following code  

                is strongly and dynamic typed。 



                Dim a = 10 



                      The type is dynamic because I have not declared the variable to be of any type。 It is strongly typed because  

                when a is assigned to a value of 10�察�it is defined to be an Integer。 A strongly and dynamic typed language  

                means that variables can be any type�察�but once they are assigned�察�their type cannot be changed。 Thus�察�you  

                cannot convert an integer to a string or a string to an integer without some type of failure。 

                      The following code is weakly and static typed。 



                Dim val As Char = ;hello; 



                      Here�察�I explicitly say that val is a Char�察�and I¨ve assigned to it a string。 However�察�because of weak  

                typing�察�a strong´armed conversion of the string to a Char is made。 Think of it as fitting a square peg into a  

                round hole。 If the square peg has a diagonal length less than the diameter of the hole�察�the process works  

                without much effort。 But if the square peg¨s length is the same as the diameter of the hole�察�you will need to  

                use brute force。 

                      Visual Basic allows you to write all types of code�察�and the flags Option Strict and Option Explicit  

                relate to what kind of code you want。 When you set Option Strict to On�察�you are saying that you don¨t want  

                to support weakly typed code。 The flag has no effect on dynamic typing。 The Option Explicit flag does not  

                affect weakly typed code�察�but it partially affects dynamic typed code。 Consider the following code that piles  

                when Option  Explicit is set to Off。 



                a = 10 



                      The code is an assignment�察�but you don¨t know if the variable is declared in the file�察�in the class�察�or local  

                to the method。 The variable could be defined out of the blue and then used。 Dynamic typing allows this�察�but  

                again�察�after the variable has been assigned�察�it stays the same type。 When you set Option  Explicit to On�察 �

                you are making an explicit declaration of the variable a requirement。 

                      With all of these options�察�you are left wondering which bination of flags you want。 The answer is that  

                it depends on what style of programmer you are。 If you want a traditional language ��like C#�察�Java�察�C�����察�and  

                so on���察�then you should have both flags set to On。 If you want a more dynamic programming language ��like  

                Python�察�Ruby�察�PHP�察�and so on���察�then you should have both flags set to Off。 Unless you have experience in the  

                dynamic programming environment and know what side effects may occur�察�you should start off taking the  

                traditional language approach。 For that reason�察�the code in this book is written with both flags set to On。 

                      You can define the Option Strict and Option Explicit flags in the source code�察�as shown in the  

                examples in the previous ^Quoting Strings ̄ section�察�or you can set them in the pile settings of the individual  

                project settings or for the whole of Visual Basic Express。 To set them for a project�察�right´click the project  

                name and select Properties  pile。 The two settings are in the drop´down boxes at the top of the page。  

                To set the options for all projects�察�select Tools  Options�察�and then select Projects and Solutions  VB Defaults。 


´´´´´´´´´´´´´´´´´´´´´´Page 89´´´´´´´´´´´´´´´´´´´´´´´

                                               CH AP T E R   3   *    L E AR N IN G   AB O U T   ST R I N G   M A N I PU L A TI O N S  67 



Character Mapping 



A single character takes 16 bits of spac
卦指朕村 貧匯匈 和匯匈 指欺競何 壘��0�� 家��0��
隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��
梁椣戻幣�� 梁心弌傍議揖扮窟燕得胎��傍竃徭失議心隈才凪万弌誌育断蛍�輌臆惨軼僑〃�燕慕得珊辛參資誼持蛍才将刮襲潜��範寔亟圻幹慕得 瓜寡追葎娼得辛參資誼寄楚署衛、持蛍才将刮襲潜填��