D 程式設計 - 字元



字元是字串的基本組成單元。任何書寫系統中的符號都被稱為字元:字母表中的字母、數字、標點符號、空格字元等。令人困惑的是,字元本身的基本組成單元也被稱為字元。

小寫字母 a 的整數值為 97,數字 1 的整數值為 49。這些值僅僅是在設計 ASCII 表時透過約定分配的。

下表列出了標準字元型別及其儲存大小和用途。

字元由 char 型別表示,它只能容納 256 個不同的值。如果您熟悉其他語言中的 char 型別,您可能已經知道它不足以支援許多書寫系統的符號。

型別 儲存大小 用途
char 1 位元組 UTF-8 程式碼單元
wchar 2 位元組 UTF-16 程式碼單元
dchar 4 位元組 UTF-32 程式碼單元和 Unicode 程式碼點

下面列出了一些有用的字元函式:

  • isLower - 判斷是否為小寫字元?

  • isUpper - 判斷是否為大寫字元?

  • isAlpha - 判斷是否為 Unicode 字母數字字元(通常是字母或數字)?

  • isWhite - 判斷是否為空格字元?

  • toLower - 將給定字元轉換為小寫。

  • toUpper - 將給定字元轉換為大寫。

import std.stdio;
import std.uni;

void main() { 
   writeln("Is ğ lowercase? ", isLower('ğ')); 
   writeln("Is Ş lowercase? ", isLower('Ş'));  
   
   writeln("Is İ uppercase? ", isUpper('İ')); 
   writeln("Is ç uppercase? ", isUpper('ç')); 
   
   writeln("Is z alphanumeric? ",       isAlpha('z'));  
   writeln("Is new-line whitespace? ",  isWhite('\n')); 
   
   writeln("Is underline whitespace? ", isWhite('_'));  
   
   writeln("The lowercase of Ğ: ", toLower('Ğ')); 
   writeln("The lowercase of İ: ", toLower('İ')); 
   
   writeln("The uppercase of ş: ", toUpper('ş')); 
   writeln("The uppercase of ı: ", toUpper('ı')); 
}

編譯並執行上述程式碼後,將產生以下結果:

Is ğ lowercase? true 
Is Ş lowercase? false 
Is İ uppercase? true 
Is ç uppercase? false
Is z alphanumeric? true 
Is new-line whitespace? true 
Is underline whitespace? false 
The lowercase of Ğ: ğ 
The lowercase of İ: i 
The uppercase of ş: Ş 
The uppercase of ı: I 

在 D 中讀取字元

我們可以使用 `readf` 讀取字元,如下所示。

readf(" %s", &letter);

由於 D 程式語言支援 Unicode,為了讀取 Unicode 字元,我們需要讀取兩次並寫入兩次才能獲得預期結果。這在線上編譯器上不起作用。示例如下所示。

import std.stdio;

void main() { 
   char firstCode; 
   char secondCode; 
   
   write("Please enter a letter: "); 
   readf(" %s", &firstCode); 
   readf(" %s", &secondCode); 
   
   writeln("The letter that has been read: ", firstCode, secondCode); 
} 

編譯並執行上述程式碼後,將產生以下結果:

Please enter a letter: ğ 
The letter that has been read: ğ
廣告