JavaRush /Blog Java /Random-VI /Chữ trong Java

Chữ trong Java

Xuất bản trong nhóm
Ở giai đoạn tạo ứng dụng, theo quy luật, nhà phát triển chỉ biết cấu trúc của nó và không giả định dữ liệu nào nó sẽ xử lý. Tuy nhiên, trong một số trường hợp, bạn cần chỉ định rõ ràng một số dữ liệu trong mã chương trình (ví dụ: số lần lặp hoặc thông báo sẽ xuất ra). Trong trường hợp này, nghĩa đen đến giải cứu. Nội dung:

Chữ nghĩa là gì?

Chữ là các giá trị được chỉ định rõ ràng trong mã chương trình - các hằng số thuộc một loại nhất định có trong mã tại thời điểm khởi chạy.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
Trong lớp học này “Xin chào thế giới!” - theo nghĩa đen. Chữ có nhiều loại khác nhau, được xác định bởi mục đích và cách viết của chúng.

Các loại chữ và cách sử dụng của chúng

Tất cả các chữ đều là giá trị nguyên thủy (chuỗi, số, ký tự, boolean). Bạn không thể tạo một đối tượng theo nghĩa đen. Nghĩa đen duy nhất được liên kết với một đối tượng là null. Theo nguyên thủy, nghĩa đen cũng được chia thành các phần:
  1. Số:
    • Số nguyên;
    • Điểm nổi;
  2. Sợi dây;
  3. Tính cách;
  4. Trêu ghẹo não.

Chữ số

Chữ số nguyên

Loại nghĩa đen này là đơn giản nhất. Các số được viết ở dạng chuẩn mà không chỉ ra các ký tự hoặc bất cứ thứ gì khác. Theo mặc định, bất kỳ số nguyên nào cũng là một số nguyên. Nghĩa là, bạn có thể đặt rõ ràng giá trị của một biến hoặc số lần lặp trong một vòng lặp. Java hỗ trợ 4 hệ thống số:
  • nhị phân
  • bát phân
  • Số thập phân
  • thập lục phân
JDK 7 đã giới thiệu khả năng ghi các giá trị nhị phân . Điều này được thực hiện bằng cách sử dụng tiền tố 0b hoặc 0B . Tiếp theo là viết bằng 0 và 1. Các số trong bát phân được viết bằng số 0 đứng đầu. Các chữ số hợp lệ là từ 0 đến 7. Viết 09 hoặc 08 sẽ gây ra lỗi biên dịch. Không có vấn đề gì với hệ thống số thập phân : các số được biểu thị dưới dạng chúng ta quen thuộc. Hạn chế duy nhất là số không thể bắt đầu bằng 0, vì trình biên dịch sẽ coi nó là số bát phân. Các số trong hệ thập lục phân được viết bằng tiền tố 0x và 0X. Các số hợp lệ là từ 0 đến 15, trong đó các số 10-15 được biểu thị bằng ký hiệu AF tương ứng.
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);
}
Đầu ra: Số a trong hệ nhị phân: 854 Số b trong hệ bát phân: 5324 Số c trong hệ thập phân: 456 Số d trong hệ thập lục phân: 1318162 Mặc dù thực tế là các số được chỉ định trong các hệ thống số khác nhau, nhưng trong chương trình, chúng được xử lý dưới dạng thập phân những con số. Vượt quá các giá trị sẽ dẫn đến lỗi biên dịch:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
Khi chạy ở giai đoạn biên dịch, chúng ta nhận được kết quả như sau:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
Còn việc gõ phím thì sao? Bất kỳ chữ số nguyên nào cũng có loại mặc định là int. Nếu giá trị của nó nằm ngoài giới hạn của biến được gán thì sẽ xảy ra lỗi biên dịch. Khi sử dụng một loại, longbạn phải đặt một ký hiệu ở cuối Lcho biết loại này:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
Đang cố gắng biên dịch kết quả trong lỗi sau:

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

Chữ dấu phẩy động

Số dấu phẩy động hoặc số phân số có thể được viết bằng hai cách. Đầu tiên là phân số thập phân cổ điển: 3,14159 hoặc 2,718281282459045. Thứ hai ở dạng khoa học, nghĩa là một phân số thập phân thông thường cộng với một hậu tố ở dạng ký hiệu e hoặc E và lũy thừa 10 mà phân số đã chỉ định phải được nhân lên. Ví dụ: 4.05E-13, điều này có nghĩa là 4.05 * 10 -13 .
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
Đầu ra: Kiểu kép cổ điển: 2.718281828459045 Kiểu kép khoa học: 4.05E-13 Không giống như số nguyên và hệ thống số, ký hiệu khoa học được lưu trữ trong một biến và được xử lý theo cách giống như ký hiệu cổ điển. Còn việc gõ phím thì sao? Bất kỳ số dấu phẩy động nào cũng tạo ra một loại double. Nếu bạn phải sử dụng loại này float, bạn phải thêm fhoặc vào cuối F. Trong trường hợp này doublenó sẽ được giảm xuống loại float. Điều này không tự động xảy ra:
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
Khi bắt đầu ở giai đoạn biên dịch, chúng tôi thấy lỗi sau:

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

Chuỗi ký tự

Chuỗi ký tự là một tập hợp các ký tự được đặt trong dấu ngoặc kép. Loại này được sử dụng thường xuyên như chữ số. Dòng này cũng có thể chứa các ký tự dịch vụ cần được thoát (được gọi là chuỗi thoát). Ví dụ:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
Đầu ra: Đây là một chuỗi bình thường. Cũng tiêu chuẩn và không có gì nổi bật như phần còn lại của chúng tôi. Và đây là một "dòng" bất thường. Nếu chỉ vì một số “từ” trong đó nằm trong “dấu ngoặc kép”.

Ký tự chữ

Các ký tự trong Java được biểu diễn bằng bộ ký tự Unicode, nghĩa là mỗi ký tự là một giá trị 16 bit. Để biểu thị một ký hiệu trong mã, nó được phân tách bằng dấu ngoặc đơn. Dựa trên kinh nghiệm, có hai loại biểu tượng:
  1. Những ký tự có thể được nhập từ bàn phím là các ký tự thông thường;
  2. Các ký hiệu không thể nhập đơn giản từ bàn phím (các ký hiệu của nhiều ngôn ngữ, hình dạng khác nhau, v.v.).
Các ký tự thông thường có thể được chỉ định rõ ràng: ' ,' hoặc ' @'. Nếu một ký tự là ký tự dịch vụ (ví dụ: dấu ngắt dòng hoặc tab), ký tự đó phải được thoát bằng dấu gạch chéo ngược. Các ký tự không thể nhập đơn giản từ bảng điều khiển có thể được chỉ định ở dạng 16 bit của chúng. Để làm điều này, bạn phải chỉ định mã ký tự có tiền tố \u, ví dụ: ' \u00F7'. Bạn cũng có thể chỉ định các ký tự theo kiểu bát phân (số có ba chữ số) bằng cách thêm dấu gạch chéo ngược ở đầu, ví dụ: ' \122'. Theo tôi, nó dễ sử dụng hơn nhiều \u. Ví dụ sử dụng:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
Đầu ra: Dấu và - & Ký hiệu phép chia - ÷

Ký tự Boolean

Nghĩa đen đơn giản nhất là nghĩa logic. Chỉ có 2 giá trị: falsetrue, được chỉ định rõ ràng mà không có các ký hiệu khác nhau. Những chữ như vậy có thể được gán cho các biến kiểu boolean hoặc được chỉ định ở nơi mong đợi kiểu boolean (ví dụ: trong khối if, mặc dù cách làm này được coi là cách cư xử xấu, nói một cách nhẹ nhàng).
boolean flag = false;

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

Kỹ thuật Jedi với chữ

Nhờ các biểu tượng trong Java, bạn có thể làm được nhiều điều thú vị, bao gồm cả việc quản lý biểu tượng cảm xúc. Ví dụ: hãy hiển thị một khuôn mặt tươi cười:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
Kết luận: Mặt cười: 😀 Mặc dù việc hiển thị biểu tượng cảm xúc có thể gây cảm giác rùng rợn (tùy thuộc vào cách triển khai), nhưng giải pháp này hoạt động rất tốt. Tuy nhiên, rất khó để tìm kiếm biểu tượng cảm xúc mong muốn trong bảng mã hóa tiêu chuẩn, phần Biểu tượng cảm xúc trên trang web chính thức rất thưa thớt. Việc sử dụng các thư viện bổ sung sẽ dễ dàng hơn nhiều.

Chữ trong khóa học JavaRush

Trong khóa học JavaRush, chữ được nghiên cứu ở cấp độ 10 trong bài giảng 8 của khóa học Cú pháp Java , trong đó các ví dụ giải thích chữ là gì và tại sao chúng lại cần thiết. JavaRush là khóa học trực tuyến về lập trình Java chú trọng vào thực hành: hơn 1200 nhiệm vụ được xác minh ngay lập tức, các dự án nhỏ, trò chơi.

Phần kết luận

Chữ trong Java là một thứ tiện lợi trong bất kỳ chương trình nào, nhưng chúng phải được sử dụng ở những nơi thích hợp. Bạn không nên mã hóa cứng các tham số kết nối cơ sở dữ liệu hoặc bất kỳ giá trị nào có thể thay đổi trong vòng đời của chương trình trong mã nguồn.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION