您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C#語法文本字面量的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C#語法文本字面量的示例分析”這篇文章吧。
在日常生活中,文本用來表示除了數字以外的內容。例如有一個叫“比爾”的人,他的職位為“科長”。那么,“比爾”和“科長”都可以稱為文本。在計算機里,現實世界中的文本通常被稱為字符和字符串。例如,“比爾”中的每個漢字都是一個字符。而整體構成一個字符串。“科長”也是如此。
上面,我們看到的是常見的文本字面量。但是,很多時候數字內容表達的并不一定是數值。例如,比爾的電話號碼是13466668888。對于“13466668888”來說,我們不會理解為一百三十四億六千六百六十六萬八千八百八十八,而是當成一個電話號來理解。由于計算機能力有限,為了避免這類信息對計算機造成困擾,程序對字符和字符串的表示有以下規定:
字符是由單引號(')括起來的單個的字母、數字、字或者符號。
字符串可以表示一個字符序列。
字符串使用一對雙引號(")與多個字符組合。
字符串的雙引號中可以有任意多個字符。
根據這個規范,如果要在程序中表示字母a,需要寫為'a'。字符中只能包含一個字符,因此字符'a'長度為1。如果要在程序中表示比爾的電話號碼,必須寫為"13466668888"。該字符串的長度為11,因為包含的字符個數為11,而雙引號是字符串格式符號,不能算作字符串長度數。
有時候,需要在字符串中使用特殊字符,例如字符串abc"s。在代碼中字符串"abc"s"會產生錯誤,編譯器無法辨認字符串的具體內容。為了解決這個問題,需要使用轉義字符。轉義字符通過反斜杠“\”與普通字符的組合,來表示一些特殊的字符。轉義字符中至少包含兩個字符,第一個字符是轉義符號“\”,第二個字符是需要表示的字符。常用的轉義字符有兩種:表示格式的轉義字符和表示控制代碼的轉義字符。
1.表示格式
為了構成字符和字符串,使用了雙引號(")和單引號(')。而為了構成轉義字符,又使用了反斜杠(\)。如果字符串中需要包含這三個字符,需要使用轉義字符如表1.1所示。
表1.1 表示格式的轉義字符列表
\' | |
\" | |
\\ |
【示例1-4】有下列文本內容,需要在程序中使用字符串表示。
I love C#.
I’m studying C#.
在這個文本內容中,第一行內容表達為字符串為"I love C#.",該字符串長度為10(空格與.都算作一個字符)。而第二行內容中有一個單引號,所以需要使用轉義字符表達為"I\'m studying C#.",該字符串長度為16。
2.表示控制代碼
在文本數據中,會出現一些特殊的符號,如換行符、退格等。這些符號無法看到,但是用來控制文本的格式。這類字符由于無法書寫,所以必須使用轉義字符表示如表1.2所示。
表1.2 表示控制代碼的轉義字符序列
\a | |
\b | |
\f | |
\n | |
\r | |
\t | |
\v |
示例1-4中由于兩個文本內容不在同一行,所以之間必須有“\n”來表示換行。因此,這兩個文本的正確表示形式為"I love C#.\n I\'m studying C#."。這個字符串的長度為27。
轉義字符可以解決大部分的字符表達。但是還是有很多字符無法直接書寫,也沒有對應的轉義字符。這個時候,只能使用ASCII進行表達。ASCII是基于拉丁字母(26個英語字母)的一套電腦編碼系統,是現在最通用的單字節編碼系統。使用ASCII表示字符的格式如表1.3所示。
表1.3 使用ASCII表示的字符
\0 | |
\ddd | 1~3位八進制數所代表的任意字符 |
\xhh | 1~2位十六進制數所代表的任意字符 |
在表1.3中,使用八進制表示字符時可以表示1~3位八進制數代表的任意字符,即該類轉義字符總長度為2~4。使用十六進制表示字符時可以表示1~2位十六進制數代表的任意字符,即該類轉義字符總長度為3~4,因為表示十六進制數時“\x”以開頭。
【示例1-5】以下代碼中使用了轉義字符:
'\x2f'
'\013'
其中,\x表示后面的字符是十六進制數,\0表示后面的字符是八進制數。
為了更加全面地表示,這里給出了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字符的十六進制數結合的方式使用字符。例如,“\n”與“\0D”起到的作用是一致的。但是大多數字符可以直接輸出,不需要使用此種方式。
在編程中,有時候字符的組合恰巧與轉義字符相同,此時就需要使該組合中的轉義字符失效。C#中有一個特殊的字符 “@”,該字符的作用是聲明原義字符串,忽略轉義字符的作用。
【示例1-6】假如想要表示一個地址“c:\temp”。當我們在代碼中輸出“c:\temp”時,顯示結果如下:
c: emp
為什么會顯示這樣的一個結果呢?因為在“c:\temp”中,字符串中的“\t”被計算機識別成了轉義字符,因此起的作用是水平制表符。在這種情況下,可以使用轉義字符“\\”將反斜杠輸出,讓該字符串表示一個地址,表示方式為:
"c:\\temp"
這樣的表示方式可以暫時解決眼前的簡單的地址。但是,如果想要表示的地址很長很復雜,里面包含多個反斜杠時,這種書寫方式就會非常繁瑣。例如,需要表示的地址為“c:\temp\1\t\3\a\5”時,使用這種方式表示出來為:
"c:\\temp\\1\\t\\3\\a\\5"
上述這種表示方式非常繁瑣,容易書寫錯誤。因此,可以使用特殊符號@來屏蔽轉義字符的作用。當我們想表示地址“c:\temp\1\t\3\a\5”時,只需要在地址前面加上特殊字符@即可,表示方式如下:
@"c:\temp\1\t\3\a\5"
上面我們學習了字符、字符串、轉義字符等,接著我們來了解它們各自的字符長度。各種字符和字符串的類型、示例、長度及輸出結果具體如表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#語法文本字面量的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。