JavaRush /مدونة جافا /Random-AR /الحروف في جافا

الحروف في جافا

نشرت في المجموعة
في مرحلة إنشاء التطبيق، عادة ما يعرف المطور هيكله فقط ولا يفترض البيانات التي سيعالجها. ومع ذلك، في بعض الحالات، تحتاج إلى تحديد بعض البيانات بشكل صريح في رمز البرنامج (على سبيل المثال، عدد التكرارات أو الرسالة التي سيتم إخراجها). في هذه الحالة، تأتي الحرفيات للإنقاذ. محتوى:

ما هي الحروف؟

القيم الحرفية هي قيم محددة بشكل صريح في كود البرنامج - ثوابت من نوع معين موجودة في الكود وقت الإطلاق.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
في هذا الفصل "مرحبًا بالعالم!" - حرفي. تأتي الحروف الحرفية في أنواع مختلفة، يتم تحديدها حسب الغرض منها وكيفية كتابتها.

أنواع الحروف واستخداماتها

جميع القيم الحرفية هي قيم بدائية (سلاسل، أرقام، أحرف، منطقية). لا يمكنك إنشاء كائن حرفي. الحرف الحرفي الوحيد المرتبط بالكائن هو null. وفقًا للأوليات، تنقسم الحرفيات أيضًا إلى أقسام:
  1. رقمي:
    • الأعداد الصحيحة.
    • النقطة العائمة؛
  2. خيط؛
  3. شخصية؛
  4. دعابة الدماغ.

الحروف الرقمية

عدد صحيح حرفيا

هذا النوع من الحرف هو الأبسط. تتم كتابة الأرقام بشكلها القياسي دون الإشارة إلى أحرف أو أي شيء آخر. أي عدد صحيح هو عدد صحيح حرفي بشكل افتراضي. أي أنه يمكنك تعيين قيمة المتغير أو عدد التكرارات في الحلقة بشكل صريح. تدعم Java 4 أنظمة أرقام:
  • الثنائية
  • ثماني
  • عدد عشري
  • السداسي عشري
قدم JDK 7 القدرة على كتابة القيم الثنائية . ويتم ذلك باستخدام البادئة 0b أو 0B . بعد ذلك تأتي الكتابة باستخدام 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);
}
الإخراج: الرقم أ في النظام الثنائي: 854 الرقم ب في النظام الثماني: 5324 الرقم ج في النظام العشري: 456 الرقم د في النظام السداسي العشري: 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، فيجب عليك إضافة fأو في النهاية 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');
الإخراج: علامة الضم - ورمز القسمة - ÷

الحروف المنطقية

أبسط حرفي هو منطقي. هناك قيمتان فقط: falseو true، والتي تم تحديدها بشكل صريح بدون رموز مختلفة. يمكن تعيين مثل هذه القيم الحرفية لمتغيرات من النوع المنطقي أو تحديدها في مكان يُتوقع فيه النوع المنطقي (على سبيل المثال، في كتلة 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، تتم دراسة القيم الحرفية في المستوى 10 في المحاضرة 8 من دورة Java Syntax ، حيث تشرح الأمثلة ماهية القيم الحرفية وسبب الحاجة إليها. JavaRush عبارة عن دورة تدريبية عبر الإنترنت حول برمجة Java مع التركيز على الممارسة: أكثر من 1200 مهمة مع التحقق الفوري والمشاريع الصغيرة والألعاب.

خاتمة

تعد الحروف الحرفية في Java أمرًا مناسبًا في أي برنامج، ولكن يجب استخدامها في الأماكن التي يكون فيها ذلك مناسبًا. لا يجب عليك ترميز معلمات اتصال قاعدة البيانات أو أي قيم قد تتغير خلال دورة حياة البرنامج في الكود المصدري.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION