في مرحلة إنشاء التطبيق، عادة ما يعرف المطور هيكله فقط ولا يفترض البيانات التي سيعالجها. ومع ذلك، في بعض الحالات، تحتاج إلى تحديد بعض البيانات بشكل صريح في رمز البرنامج (على سبيل المثال، عدد التكرارات أو الرسالة التي سيتم إخراجها). في هذه الحالة، تأتي الحرفيات للإنقاذ. محتوى:
- ما هي الحروف
- أنواع الحروف واستخداماتها
- الحروف الرقمية
- سلسلة حرفية
- حرفيات الحرف
- الحروف المنطقية
- تقنية جدي مع الحروف
- الحرف اليدوية في دورة JavaRush
- خاتمة
ما هي الحروف؟
القيم الحرفية هي قيم محددة بشكل صريح في كود البرنامج - ثوابت من نوع معين موجودة في الكود وقت الإطلاق.class Test {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
في هذا الفصل "مرحبًا بالعالم!" - حرفي. تأتي الحروف الحرفية في أنواع مختلفة، يتم تحديدها حسب الغرض منها وكيفية كتابتها.
أنواع الحروف واستخداماتها
جميع القيم الحرفية هي قيم بدائية (سلاسل، أرقام، أحرف، منطقية). لا يمكنك إنشاء كائن حرفي. الحرف الحرفي الوحيد المرتبط بالكائن هوnull
. وفقًا للأوليات، تنقسم الحرفيات أيضًا إلى أقسام:
- رقمي:
- الأعداد الصحيحة.
- النقطة العائمة؛
- خيط؛
- شخصية؛
- دعابة الدماغ.
الحروف الرقمية
عدد صحيح حرفيا
هذا النوع من الحرف هو الأبسط. تتم كتابة الأرقام بشكلها القياسي دون الإشارة إلى أحرف أو أي شيء آخر. أي عدد صحيح هو عدد صحيح حرفي بشكل افتراضي. أي أنه يمكنك تعيين قيمة المتغير أو عدد التكرارات في الحلقة بشكل صريح. تدعم Java 4 أنظمة أرقام:- الثنائية
- ثماني
- عدد عشري
- السداسي عشري
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 بت. للإشارة إلى رمز ما في الكود، يتم فصله بعلامات اقتباس مفردة. بناءً على الخبرة، هناك نوعان من الرموز:- تلك التي يمكن إدخالها من لوحة المفاتيح هي أحرف عادية؛
- الرموز التي لا يمكن إدخالها ببساطة من لوحة المفاتيح (رموز اللغات والأشكال المختلفة وما إلى ذلك).
,
' أو ' @
'. إذا كان الحرف عبارة عن حرف خدمة (على سبيل المثال، فاصل أسطر أو علامة تبويب)، فيجب تجاوز هذا الحرف بشرطة مائلة عكسية. يمكن تحديد الأحرف التي لا يمكن إدخالها ببساطة من وحدة التحكم في شكل 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()); // Выводим
الخلاصة: الوجه المبتسم: 😀 على الرغم من أن عرض الرموز التعبيرية يمكن أن يكون مخيفًا (اعتمادًا على التنفيذ)، إلا أن هذا الحل يقوم بالمهمة بشكل جيد. ومع ذلك، من الصعب البحث عن الرموز التعبيرية المطلوبة في جدول التشفير القياسي، فقسم الرموز التعبيرية على الموقع الرسمي متناثر. من الأسهل استخدام مكتبات إضافية.
GO TO FULL VERSION