溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#語法文本字面量的示例分析

發(fā)布時(shí)間:2021-12-03 10:26:29 來源:億速云 閱讀:159 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“C#語法文本字面量的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C#語法文本字面量的示例分析”這篇文章吧。

C#語法文本字面量

在日常生活中,文本用來表示除了數(shù)字以外的內(nèi)容。例如有一個(gè)叫“比爾”的人,他的職位為“科長”。那么,“比爾”和“科長”都可以稱為文本。在計(jì)算機(jī)里,現(xiàn)實(shí)世界中的文本通常被稱為字符和字符串。例如,“比爾”中的每個(gè)漢字都是一個(gè)字符。而整體構(gòu)成一個(gè)字符串?!翱崎L”也是如此。

字符和字符串的寫作規(guī)范

上面,我們看到的是常見的文本字面量。但是,很多時(shí)候數(shù)字內(nèi)容表達(dá)的并不一定是數(shù)值。例如,比爾的電話號(hào)碼是13466668888。對(duì)于“13466668888”來說,我們不會(huì)理解為一百三十四億六千六百六十六萬八千八百八十八,而是當(dāng)成一個(gè)電話號(hào)來理解。由于計(jì)算機(jī)能力有限,為了避免這類信息對(duì)計(jì)算機(jī)造成困擾,程序?qū)ψ址妥址谋硎居幸韵乱?guī)定:

  • 字符是由單引號(hào)(')括起來的單個(gè)的字母、數(shù)字、字或者符號(hào)。

  • 字符串可以表示一個(gè)字符序列。

  • 字符串使用一對(duì)雙引號(hào)(")與多個(gè)字符組合。

  • 字符串的雙引號(hào)中可以有任意多個(gè)字符。

根據(jù)這個(gè)規(guī)范,如果要在程序中表示字母a,需要寫為'a'。字符中只能包含一個(gè)字符,因此字符'a'長度為1。如果要在程序中表示比爾的電話號(hào)碼,必須寫為"13466668888"。該字符串的長度為11,因?yàn)榘淖址麄€(gè)數(shù)為11,而雙引號(hào)是字符串格式符號(hào),不能算作字符串長度數(shù)。

特殊的字符和字符串——轉(zhuǎn)義字符

有時(shí)候,需要在字符串中使用特殊字符,例如字符串abc"s。在代碼中字符串"abc"s"會(huì)產(chǎn)生錯(cuò)誤,編譯器無法辨認(rèn)字符串的具體內(nèi)容。為了解決這個(gè)問題,需要使用轉(zhuǎn)義字符。轉(zhuǎn)義字符通過反斜杠“\”與普通字符的組合,來表示一些特殊的字符。轉(zhuǎn)義字符中至少包含兩個(gè)字符,第一個(gè)字符是轉(zhuǎn)義符號(hào)“\”,第二個(gè)字符是需要表示的字符。常用的轉(zhuǎn)義字符有兩種:表示格式的轉(zhuǎn)義字符和表示控制代碼的轉(zhuǎn)義字符。

1.表示格式

為了構(gòu)成字符和字符串,使用了雙引號(hào)(")和單引號(hào)(')。而為了構(gòu)成轉(zhuǎn)義字符,又使用了反斜杠(\)。如果字符串中需要包含這三個(gè)字符,需要使用轉(zhuǎn)義字符如表1.1所示。

1.1  表示格式的轉(zhuǎn)義字符列表



\'


\"


\\


【示例1-4】有下列文本內(nèi)容,需要在程序中使用字符串表示。

I love C#.

I’m studying C#.

在這個(gè)文本內(nèi)容中,第一行內(nèi)容表達(dá)為字符串為"I love C#.",該字符串長度為10(空格與.都算作一個(gè)字符)。而第二行內(nèi)容中有一個(gè)單引號(hào),所以需要使用轉(zhuǎn)義字符表達(dá)為"I\'m studying C#.",該字符串長度為16。

2.表示控制代碼

在文本數(shù)據(jù)中,會(huì)出現(xiàn)一些特殊的符號(hào),如換行符、退格等。這些符號(hào)無法看到,但是用來控制文本的格式。這類字符由于無法書寫,所以必須使用轉(zhuǎn)義字符表示如表1.2所示。

1.2  表示控制代碼的轉(zhuǎn)義字符序列



\a


\b


\f


\n


\r


\t


\v


示例1-4中由于兩個(gè)文本內(nèi)容不在同一行,所以之間必須有“\n”來表示換行。因此,這兩個(gè)文本的正確表示形式為"I love C#.\n I\'m studying C#."。這個(gè)字符串的長度為27。

更全面的表達(dá)方式——ASCII

轉(zhuǎn)義字符可以解決大部分的字符表達(dá)。但是還是有很多字符無法直接書寫,也沒有對(duì)應(yīng)的轉(zhuǎn)義字符。這個(gè)時(shí)候,只能使用ASCII進(jìn)行表達(dá)。ASCII是基于拉丁字母(26個(gè)英語字母)的一套電腦編碼系統(tǒng),是現(xiàn)在最通用的單字節(jié)編碼系統(tǒng)。使用ASCII表示字符的格式如表1.3所示。

1.3  使用ASCII表示的字符



\0


\ddd

1~3位八進(jìn)制數(shù)所代表的任意字符

\xhh

1~2位十六進(jìn)制數(shù)所代表的任意字符

在表1.3中,使用八進(jìn)制表示字符時(shí)可以表示1~3位八進(jìn)制數(shù)代表的任意字符,即該類轉(zhuǎn)義字符總長度為2~4。使用十六進(jìn)制表示字符時(shí)可以表示1~2位十六進(jìn)制數(shù)代表的任意字符,即該類轉(zhuǎn)義字符總長度為3~4,因?yàn)楸硎臼M(jìn)制數(shù)時(shí)“\x”以開頭。

【示例1-5】以下代碼中使用了轉(zhuǎn)義字符:

'\x2f'

'\013'

其中,\x表示后面的字符是十六進(jìn)制數(shù),\0表示后面的字符是八進(jìn)制數(shù)。

為了更加全面地表示,這里給出了ASCII表的字符的0~127。具體如表1.4所示。

1.4  ASCII













0

00

 

32

20

[空格]

64

40

@

96

60

`

1

01

 

33

21

!

65

41

A

97

61

a

2

02

 

34

22

"

66

42

B

98

62

b

3

03

 

35

23

#

67

43

C

99

63

c

4

04

 

36

24

$

68

44

D

100

64

d

5

05

 

37

25

%

69

45

E

101

65

e

6

06

 

38

26

&

70

46

F

102

66

f

7

07

 

39

27

'

71

47

G

103

67

g

8

08

\b

40

28

(

72

48

H

104

68

h

9

09

\t

41

29

)

73

49

I

105

69

i

10

0A

\r

42

2A

*

74

4A

J

106

6A

j

11

0B

 

43

2B

+

75

4B

K

107

6B

k

12

0C

 

44

2C

,

76

4C

L

108

6C

l

13

0D

\n

45

2D

-

77

4D

M

109

6D

m

14

0E

 

46

2E

.

78

4E

N

110

6E

n

15

0F

?

47

2F

/

79

4F

O

111

6F

o

16

10

?

48

30

0

80

50

P

112

70

p

17

11

?

49

31

1

81

51

Q

113

71

q

18

12

?

50

32

2

82

52

R

114

72

r

19

13


51

33

3

83

53

S

115

73

s

20

14


52

34

4

84

54

T

116

74

t

21

15


53

35

5

85

55

U

117

75

u

22

16

?

54

36

6

86

56

V

118

76

v

23

17

?

55

37

7

87

57

W

119

77

w

24

18

?

56

38

8

88

58

X

120

78

x

25

19

?

57

39

9

89

59

Y

121

79

y

26

1A

?

58

3A

:

90

5A

Z

122

7A

z

27

1B


59

3B

;

91

5B

[

123

7B

{

28

1C

?

60

3C

< 

92

5C

\

124

7C

|

29

1D

?

61

3D

=

93

5D

]

125

7D

}

30

1E

-

62

3E

> 

94

5E

^

126

7E

~

31

1F

 

63

3F

?

95

5F

_

127

7F

?

1.4中很多字符都是無法顯示的,所以以空白顯示。在編碼中,可以通過反斜杠“\”與ASCII字符的十六進(jìn)制數(shù)結(jié)合的方式使用字符。例如,“\n”與“\0D”起到的作用是一致的。但是大多數(shù)字符可以直接輸出,不需要使用此種方式。

避免轉(zhuǎn)義字符——@

在編程中,有時(shí)候字符的組合恰巧與轉(zhuǎn)義字符相同,此時(shí)就需要使該組合中的轉(zhuǎn)義字符失效。C#中有一個(gè)特殊的字符 “@”,該字符的作用是聲明原義字符串,忽略轉(zhuǎn)義字符的作用。

【示例1-6】假如想要表示一個(gè)地址“c:\temp”。當(dāng)我們?cè)诖a中輸出“c:\temp”時(shí),顯示結(jié)果如下:

c:        emp

為什么會(huì)顯示這樣的一個(gè)結(jié)果呢?因?yàn)樵凇?span lang="EN-US">c:\temp”中,字符串中的“\t”被計(jì)算機(jī)識(shí)別成了轉(zhuǎn)義字符,因此起的作用是水平制表符。在這種情況下,可以使用轉(zhuǎn)義字符“\\”將反斜杠輸出,讓該字符串表示一個(gè)地址,表示方式為:

"c:\\temp"

這樣的表示方式可以暫時(shí)解決眼前的簡(jiǎn)單的地址。但是,如果想要表示的地址很長很復(fù)雜,里面包含多個(gè)反斜杠時(shí),這種書寫方式就會(huì)非常繁瑣。例如,需要表示的地址為“c:\temp\1\t\3\a\5”時(shí),使用這種方式表示出來為:

"c:\\temp\\1\\t\\3\\a\\5"

上述這種表示方式非常繁瑣,容易書寫錯(cuò)誤。因此,可以使用特殊符號(hào)@來屏蔽轉(zhuǎn)義字符的作用。當(dāng)我們想表示地址“c:\temp\1\t\3\a\5”時(shí),只需要在地址前面加上特殊字符@即可,表示方式如下:

@"c:\temp\1\t\3\a\5"

字符串長度

上面我們學(xué)習(xí)了字符、字符串、轉(zhuǎn)義字符等,接著我們來了解它們各自的字符長度。各種字符和字符串的類型、示例、長度及輸出結(jié)果具體如表1.5所示:

1.5  字符串長度


/字符串示例




'a'

1

a


"abc"

3

abc


"ab\'c"

4

ab'c


"ab\nc"

4

ab

c

ASCII表示的字符串

"ab\x22"

3

ab"

@的字符串

@"ab\x22"

6

ab\x22

以上是“C#語法文本字面量的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI