تنسيق النصوص المتقدم
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 49 من 59.
تنسيق السلاسل النصية في Java يتيح لك إنشاء سلاسل نصية منسقة باستخدام محددات التنسيق. وأكثرها شيوعاً هي %s للسلاسل النصية، و %d للأعداد الصحيحة، و %.2f للأعداد العشرية.
تنسيق سلسلة نصية بقيم متعددة:
String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);بعد تنفيذ الكود أعلاه، text يحتوي على:
Name: John, Age: 25
تنسيق الأرقام العشرية بدقة:
double price = 19.99;
String formatted = String.format("Price: $%.2f", price);بعد تنفيذ الكود أعلاه، يحتوي formatted على:
Price: $19.99
التحدي
سهلقم بإنشاء طريقة (method) تسمى formatData تأخذ أربعة وسائط:
- سلسلة نصية (
name) لاسم المنتج - رقم عشري (
price) لسعر المنتج - عدد صحيح (
quantity) للكمية - سلسلة نصية (
format) لنوع تنسيق المخرجات
يجب أن تقوم الطريقة بتنسيق البيانات بناءً على هذه الأنواع:
- "basic": إرجاع "ITEM: {name}, PRICE: ${price}"
- "detailed": إرجاع "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
- "total": إرجاع "TOTAL FOR {quantity}x {name}: ${total}" (حيث total = price * quantity) يجب تنسيق جميع الأسعار بمنزلتين عشريتين بالضبط.
رسالة الإرجاع:
- إذا كان أي مدخل null أو التنسيق غير صالح: إرجاع "Invalid input"
ورقة مرجعية
يستخدم تنسيق السلاسل النصية في Java محددات التنسيق مع String.format():
%sللسلاسل النصية%dللأعداد الصحيحة%.2fللأعداد العشرية مع منزلتين عشريتين
تنسيق السلاسل النصية بقيم متعددة:
String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);
// النتيجة: "Name: John, Age: 25"تنسيق الأعداد العشرية بدقة:
double price = 19.99;
String formatted = String.format("Price: $%.2f", price);
// النتيجة: "Price: $19.99"جرّب بنفسك
import java.util.Scanner;
public class Main {
public static String formatData(String name, double price, int quantity, String format) {
// اكتب كودك هنا
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
double price = Double.parseDouble(scanner.nextLine());
int quantity = Integer.parseInt(scanner.nextLine());
String format = scanner.nextLine();
if (name.equals("null")) name = null;
if (format.equals("null")) format = null;
System.out.println(formatData(name, price, quantity, format));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap5HashSet الجزء الثاني
رياضيات - اتحاد الـ HashSetsرياضيات - تقاطع الـ HashSetرياضيات - فرق المجموعاترياضيات - الفرق المتناظرالمجموعات الجزئية والشاملةالتكرار عبر المجموعات8عمليات السلاسل النصية المتقدمة
أساسيات StringBuilderمقدمة إلى StringBufferأساسيات Regular Expressionsمطابقة الأنماط باستخدام RegexString Tokenizerتنسيق النصوص المتقدم3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم