JavaRush /Java blogi /Random-UZ /Java tilidagi harflar

Java tilidagi harflar

Guruhda nashr etilgan
Ilovani yaratish bosqichida ishlab chiquvchi, qoida tariqasida, faqat uning tuzilishini biladi va u qanday ma'lumotlarni qayta ishlashni o'ylamaydi. Biroq, ba'zi hollarda, siz dastur kodidagi ba'zi ma'lumotlarni aniq ko'rsatishingiz kerak (masalan, takrorlashlar soni yoki chiqarilishi kerak bo'lgan xabar). Bunday holda, literallar yordamga keladi. Tarkib:

Literallar nima?

Literallar dastur kodida aniq ko'rsatilgan qiymatlar - ishga tushirish vaqtida kodda bo'lgan ma'lum turdagi konstantalar.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
Ushbu darsda "Salom dunyo!" - tom ma'noda. Literallar maqsadi va qanday yozilishi bilan belgilanadigan turli xil turlarga bo'linadi.

Literallarning turlari va ulardan foydalanish

Barcha harflar ibtidoiy qiymatlardir (satrlar, raqamlar, belgilar, mantiqiy qiymatlar). Siz literal ob'ekt yarata olmaysiz. Ob'ekt bilan bog'langan yagona harf null. Primitivlarga ko'ra, harflar ham bo'limlarga bo'linadi:
  1. Raqamli:
    • Butun sonlar;
    • Suzuvchi nuqta;
  2. String;
  3. Belgi;
  4. Aqliy o'yin.

Raqamli harflar

Butun sonli harflar

Ushbu turdagi literal eng oddiy hisoblanadi. Raqamlar belgilar yoki boshqa narsalarni ko'rsatmasdan standart shaklda yoziladi. Har qanday butun son sukut bo'yicha butun sondir. Ya'ni, siz o'zgaruvchining qiymatini yoki tsikldagi takrorlanishlar sonini aniq belgilashingiz mumkin. Java 4 ta raqam tizimini qo'llab-quvvatlaydi:
  • Ikkilik
  • Sakkizlik
  • O'nlik
  • O'n oltilik
JDK 7 ikkilik qiymatlarni yozish qobiliyatini taqdim etdi . Bu 0b yoki 0B prefiksi yordamida amalga oshiriladi . Keyin 0 va 1 yordamida yozish keladi. Sakkizlikdagi raqamlar bosh 0 yordamida yoziladi. Yaroqli raqamlar 0 dan 7 gacha. 09 yoki 08 ni yozish kompilyatsiya xatosiga olib keladi. O'nlik sanoq tizimida hech qanday muammo yo'q : raqamlar bizga tanish bo'lgan shaklda ko'rsatilgan. Yagona cheklov shundaki, raqam 0 dan boshlanmaydi, chunki kompilyator uni sakkizlik sifatida qabul qiladi. O'n oltilik tizimdagi raqamlar 0x va 0X prefikslari yordamida yoziladi. Yaroqli raqamlar 0 dan 15 gacha, bu erda 10-15 raqamlari mos ravishda AF belgilari bilan ko'rsatilgan.
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);
}
Chiqarish: Ikkilik sistemada a soni: 854 Sakkizlik tizimda b soni: 5324 O‘nlik sistemada c soni: 456 O‘n oltilik sistemada d soni: 1318162 Turli sanoq sistemalarida raqamlar ko‘rsatilgan bo‘lishiga qaramay, dasturda ular o‘nlik sanoq sifatida qayta ishlanadi. raqamlar. Qiymatlardan oshib ketish kompilyatsiya xatosiga olib keladi:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
Kompilyatsiya bosqichida ishga tushirilganda biz quyidagi natijaga erishamiz:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
Yozish haqida nima deyish mumkin? Har qanday tamsayı harfi standart turiga ega int. Agar uning qiymati tayinlangan o'zgaruvchining chegaralaridan tashqarida bo'lsa, kompilyatsiya xatosi yuzaga keladi. Turdan foydalanganda, longoxirida Lushbu turni ko'rsatadigan belgi qo'yishingiz kerak:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
Natijalarni quyidagi xato bilan kompilyatsiya qilishga urinish:

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

Suzuvchi nuqtali harflar

Suzuvchi nuqtali sonlar yoki kasr sonlar ikki xil tarzda yozilishi mumkin. Birinchisi klassik o'nli kasr sifatida: 3,14159 yoki 2,718281282459045. Ikkinchisi ilmiy shaklda, ya'ni oddiy o'nli kasr va e yoki E belgisi ko'rinishidagi qo'shimcha va belgilangan kasrni ko'paytirish kerak bo'lgan 10 ning kuchi. Misol uchun, 4.05E-13, bu 4.05 * 10 -13 degan ma'noni anglatadi .
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
Chiqarish: Klassik qo'sh tip: 2.718281828459045 Ilmiy qo'sh tip: 4.05E-13 Butun sonlar va sanoq sistemalaridan farqli o'laroq, ilmiy belgilar o'zgaruvchida saqlanadi va xuddi klassik belgilar bilan bir xil tarzda qayta ishlanadi. Yozish haqida nima deyish mumkin? Har qanday suzuvchi nuqta raqam turini yaratadi double. Agar siz turni ishlatishingiz kerak bo'lsa , oxirida yoki floatqo'shishingiz kerak . Bu holda u turiga qisqartiriladi . Bu avtomatik ravishda sodir bo'lmaydi: fFdoublefloat
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
Kompilyatsiya bosqichida biz quyidagi xatoni ko'ramiz:

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

String literallari

String literals - qo'sh tirnoq ichiga olingan belgilar to'plami. Bu tip sonli harflar kabi tez-tez ishlatiladi. Satrda qochish kerak bo'lgan xizmat belgilari ham bo'lishi mumkin (qochish ketma-ketligi deb ataladi). Misol:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
Chiqish: Bu oddiy qator. Xuddi hammamiz kabi standart va e'tiborga loyiq emas. Va bu g'ayrioddiy "chiziq". Agar undagi ba'zi "so'zlar" "tirnoq" ichida bo'lsa.

Belgilar harflari

Java tilidagi belgilar harflari Unicode belgilar to'plami bilan ifodalanadi, ya'ni har bir belgi 16 bitli qiymatdir. Koddagi belgini ko'rsatish uchun u bitta tirnoq bilan ajratiladi. Tajribaga asoslanib, belgilarning ikki turi mavjud:
  1. Klaviaturadan kiritilishi mumkin bo'lganlar oddiy belgilar;
  2. Klaviaturadan oddiygina kiritib bo'lmaydigan belgilar (turli tillardagi belgilar, shakllar va boshqalar).
Oddiy belgilar aniq ko'rsatilishi mumkin: ' ,' yoki ' @'. Agar belgi xizmat belgisi bo'lsa (masalan, satr uzilishi yoki yorliq), bunday belgidan teskari chiziq bilan qochish kerak. Konsoldan oddiygina kiritib bo'lmaydigan belgilar 16 bitli shaklda ko'rsatilishi mumkin. Buning uchun siz belgi kodini prefiks bilan belgilashingiz kerak \u, masalan, ' \u00F7'. Siz shuningdek, boshida teskari chiziq qo'shish orqali sakkizlik uslubda (uch xonali raqam) belgilarni belgilashingiz mumkin, masalan, ' \122'. Menimcha, undan foydalanish ancha oson \u. Foydalanish misoli:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
Chiqish: Ampersand - & Bo'linish belgisi - ÷

Mantiqiy harflar

Eng oddiy harf mantiqiydir. Faqat ikkita qiymat mavjud: falseva true, ular turli belgilarsiz aniq ko'rsatilgan. Bunday harflar mantiqiy turdagi o'zgaruvchilarga tayinlanishi yoki mantiqiy turi kutilgan joyda ko'rsatilishi mumkin (masalan, if blokida, garchi bu amaliyot yumshoq qilib aytganda, yomon odob deb hisoblansa ham).
boolean flag = false;

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

Jedi texnikasi harflar bilan

Java-dagi belgilar tufayli siz ko'plab qiziqarli narsalarni qilishingiz mumkin, jumladan, kulgichlarni boshqarish. Masalan, jilmayib turgan yuzni ko'rsatamiz:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
Xulosa: Tabassumli yuz: 😀 Emoji displeyi dahshatli bo'lishi mumkin bo'lsa-da (amalga oshirishga qarab), bu yechim vazifani yaxshi bajaradi. Biroq, standart kodlash jadvalida kerakli kulgichni qidirish qiyin, rasmiy veb-saytdagi Emoticon bo'limi juda kam. Qo'shimcha kutubxonalardan foydalanish ancha oson.

JavaRush kursidagi harflar

JavaRush kursida literallar Java sintaksisi kursining 8-ma'ruzasida 10-darajada o'rganiladi , bu erda misollar harflar nima ekanligini va ular nima uchun kerakligini tushuntiradi. JavaRush - bu Java dasturlash bo'yicha onlayn kurs bo'lib, amaliyotga e'tibor qaratiladi: tezkor tekshirish bilan 1200 dan ortiq vazifalar, mini-loyihalar, o'yinlar.

Xulosa

Java tilidagi literallar har qanday dasturda qulay narsadir, lekin ular tegishli joylarda ishlatilishi kerak. Siz ma'lumotlar bazasiga ulanish parametrlarini yoki manba kodidagi dasturning hayot aylanishi davomida o'zgarishi mumkin bo'lgan qiymatlarni qattiq kodlamasligingiz kerak.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION