Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تنسيق النصوص المتقدم

جزء من قسم 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

challenge icon

التحدي

سهل

قم بإنشاء طريقة (method) تسمى formatData تأخذ أربعة وسائط:

  1. سلسلة نصية (name) لاسم المنتج
  2. رقم عشري (price) لسعر المنتج
  3. عدد صحيح (quantity) للكمية
  4. سلسلة نصية (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));
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow