JavaRush /Java Blog /Random-TW /Java 中的文字

Java 中的文字

在 Random-TW 群組發布
在創建應用程式的階段,開發人員通常只知道其結構,並不假設它將處理哪些資料。然而,在某些情況下,您需要在程式碼中明確指定一些資料(例如迭代次數或要輸出的訊息)。在這種情況下,文字就可以派上用場。 內容:

什麼是文字?

文字是程式碼中明確指定的值 - 啟動時程式碼中的某種類型的常數。
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
在本課程中“Hello world!” - 字面意思。文字有不同的類型,由它們的目的和寫作方式決定。

文字的類型及其用途

所有文字都是原始值(字串、數字、字元、布林值)。您無法建立文字物件。與物件關聯的唯一文字是null。根據原語,文字也分為幾個部分:
  1. 數字:
    • 整數;
    • 浮點;
  2. 細繩;
  3. 特點;
  4. 腦筋急轉彎。

數位文字

整數文字

這種類型的文字是最簡單的。數字以其標準形式書寫,不指示字元或其他任何內容。預設情況下,任何整數都是整數文字。也就是說,您可以明確設定變數的值或循環中的迭代次數。Java 支援 4 種數字系統:
  • 二進位
  • 八進位
  • 十進位
  • 十六進位
JDK 7 引入了寫入二進位值的功能。這是使用前綴0b0B完成的。接下來是使用 0 和 1 進行寫入。進位數字使用前導 0 進行寫入。有效數字是 0 到 7。寫入 09 或 08 將導致編譯錯誤。十進制數字系統沒有問題:數字以我們熟悉的形式表示。唯一的限制是數字不能以 0 開頭,因為編譯器會將其視為八進位。十六進位數字使用前綴 0x 和 0X 書寫。有效數字為 0 至 15,其中數字 10-15 分別以 AF 符號表示。
public static void main(String[] args) {
       int a = 0b1101010110;
       int b = 012314;
       int c = 456;
       int d = 0x141D12;
       System.out.println("Число a в двоичной системе: " + a);
       System.out.println("Число b в восьмеричной системе: " + b);
       System.out.println("Число c в десятичной системе: " + c);
       System.out.println("Число d в шестнадцатеричной системе: " + d);
}
輸出: 二進制數 a:854 八進制數 b:5324 十進制數 c:456 十六進制數 d:1318162 儘管數字在不同的數制中指定,但在程式中它們都以十進制處理數字。超過該值將導致編譯錯誤:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
當在編譯階段運行時,我們得到以下結果:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
打字呢?任何整數文字都有預設類型int. 如果其值超出指定變數的範圍,則會發生編譯錯誤。使用類型時,long必須在末尾添加一個符號L來指示該類型:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
嘗試編譯會出現以下錯誤:

Error(11, 26) java: integer number too large: 1101010110

浮點文字

浮點數或小數可以用兩種方式寫。 第一個是經典的小數:3.14159 或 2.718281282459045。 第二種是科學形式,即普通小數加上符號 e 或 E 形式的後綴以及指定分數必須乘以的 10 次方。例如,4.05E-13,這意味著 4.05 * 10 -13
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
輸出: 經典雙精度類型:2.718281828459045 科學雙精度類型:4.05E-13 與整數和數字系統不同,科學記數法儲存在變數中,並以與經典記數法相同的方式進行處理。打字呢?任何浮點數都會建立一個類型double。如果需要使用類型float,則必須在末尾新增for F。在這種情況下,double它將被簡化為類型float。這不會自動發生:
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
當從編譯階段開始時,我們看到以下錯誤:

Error:(11, 27) java: incompatible types: possible lossy conversion from double to float

字串文字

字串文字是用雙引號括起來的一組字元。這種類型的使用頻率與數位文字一樣。該行也可能包含需要轉義的服務字元(所謂的轉義序列)。例子:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
輸出: 這是一個正常的字串。和我們其他人一樣標準且不起眼。這是一條不尋常的「線」。如果只是因為其中的一些“單字”在“引號”中。

字元文字

Java中的字元字面量是用Unicode字元集表示的,也就是每個字元都是16位元的值。為了在代碼中指示符號,它用單引號分隔。根據經驗,有兩種類型的符號:
  1. 可以從鍵盤輸入的都是普通字元;
  2. 無法簡單地從鍵盤輸入的符號(各種語言、形狀等的符號)。
可明確指定常規字元:“ ,”或“ @”。如果字元是服務字元(例如換行符或製表符),則必須使用反斜線轉義此類字元。不能簡單地從控制台輸入的字元可以以其 16 位元形式指定。為此,您必須指定帶有前綴的字元代碼\u,例如“ \u00F7”。您也可以透過在開頭添加反斜線來指定八進位樣式(三位數)的字符,例如「 」\122。在我看來,它更容易使用\u。使用範例:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
輸出: & 符號 - & 除號 - ÷

布爾文字

最簡單的文字是邏輯文字。只有 2 個值:falsetrue,它們是明確指定的,沒有各種符號。這些文字可以指派給 boolean 類型的變量,或在需要 boolean 類型的地方指定(例如,在 if 區塊中,雖然這種做法被認為是不好的舉止,但溫和地說)。
boolean flag = false;

if(true) {
    // Действия будут выполняться всегда.
}

絕地武士技術與文字

借助 Java 中的符號,您可以做許多有趣的事情,包括管理表情符號。例如,讓我們顯示一張笑臉:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
結論: 笑臉: 😀 雖然表情符號的顯示可能令人毛骨悚然(取決於實現),但這個解決方案做得很好。然而,在標準編碼表中很難搜尋到所需的表情符號;官網的表情符號部分也稀疏。使用附加程式庫要容易得多。

JavaRush 課程中的文字

在 JavaRush 課程中,在Java 文法課程第 8 課的第 10 級學習了文字,其中範例解釋了什麼是文字以及為什麼需要它們。JavaRush 是一門關於 Java 程式設計的線上課程,重點是實踐:1200 多個帶有即時驗證的任務、迷你專案、遊戲。

結論

Java 中的文字在任何程式中都很方便,但必須在適當的地方使用它們。您不應該在原始程式碼中硬編碼資料庫連線參數或在程式生命週期期間可能變更的任何值。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION