梓囚徒貧圭�鮗� ○ 賜 ★ 辛酔堀貧和鍬匈��梓囚徒貧議 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