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

دوال معالجة السلاسل النصية

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 66 من 78.

الآن بعد أن عرفت كيفية تقسيم السلاسل النصية إلى أحرف، دعنا نستكشف بعض الدوال الأساسية للتعامل مع السلاسل النصية في R. تساعدك هذه الدوال في قياس السلاسل النصية ودمجها وتحويل بياناتها.

تقوم الدالة nchar() بإرجاع عدد الأحرف في سلسلة نصية:

word <- "hello"
print(nchar(word))

المخرجات:

[1] 5

لدمج عدة سلاسل نصية في سلسلة واحدة، استخدم paste(). بشكل افتراضي، يقوم بفصل العناصر بمسافة:

result <- paste("Hello", "World")
print(result)

المخرجات:

[1] "Hello World"

استخدم paste0() عندما لا تريد فاصلاً بين السلاسل النصية:

result <- paste0("Hello", "World")
print(result)

المخرجات:

[1] "HelloWorld"

لتحويل حالة الأحرف، توفر لغة R الدالتين toupper() و tolower():

print(toupper("hello"))
print(tolower("WORLD"))

المخرجات:

[1] "HELLO"
[1] "world"

تصبح هذه الدوال قوية عند دمجها مع تقنيات التكرار التي تعلمتها، مما يسمح لك بمعالجة وتحويل النص حرفاً بحرف أو كسلاسل نصية كاملة.

challenge icon

التحدي

سهل

ستتلقى سطرين من المدخلات:

  1. الاسم الأول (على سبيل المثال، john)
  2. اسم العائلة (على سبيل المثال، SMITH)

قم بإجراء العمليات التالية:

  1. قم بتحويل الاسم الأول إلى أحرف كبيرة (uppercase) باستخدام toupper()
  2. قم بتحويل اسم العائلة إلى أحرف صغيرة (lowercase) باستخدام tolower()
  3. قم بدمجهما في اسم كامل باستخدام paste() (مع وجود مسافة بينهما)
  4. احسب العدد الإجمالي للأحرف في الاسم الكامل (بما في ذلك المسافة) باستخدام nchar()
  5. أنشئ اسم مستخدم عن طريق دمج الاسم الأول واسم العائلة بدون فاصل باستخدام paste0()، بحيث يكون الجميع بأحرف صغيرة
  6. اطبع الاسم الكامل
  7. اطبع عدد الأحرف
  8. اطبع اسم المستخدم

على سبيل المثال، إذا كانت المدخلات هي:

alice
WONDER

يجب أن تكون المخرجات:

[1] "ALICE wonder"
[1] 12
[1] "alicewonder"

الشرح: الاسم الأول "alice" يصبح "ALICE" (أحرف كبيرة)، واسم العائلة "WONDER" يصبح "wonder" (أحرف صغيرة). الاسم الكامل "ALICE wonder" يحتوي على 12 حرفاً (بما في ذلك المسافة). اسم المستخدم يدمج كلا الاسمين بأحرف صغيرة بدون فاصل: "alicewonder".

ورقة مرجعية

تعيد الدالة nchar() عدد الأحرف في السلسلة النصية:

word <- "hello"
print(nchar(word))  # المخرجات: [1] 5

تجمع الدالة paste() بين سلاسل نصية متعددة مع فاصل مسافة بشكل افتراضي:

result <- paste("Hello", "World")
print(result)  # المخرجات: [1] "Hello World"

تجمع الدالة paste0() بين السلاسل النصية بدون فاصل:

result <- paste0("Hello", "World")
print(result)  # المخرجات: [1] "HelloWorld"

تقوم الدالة toupper() بتحويل السلاسل النصية إلى أحرف كبيرة، وتقوم tolower() بتحويلها إلى أحرف صغيرة:

print(toupper("hello"))  # المخرجات: [1] "HELLO"
print(tolower("WORLD"))  # المخرجات: [1] "world"

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
first_name <- suppressWarnings(readLines(con, n = 1))
last_name <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: اكتب الكود الخاص بك أدناه
# 1. تحويل first_name إلى أحرف كبيرة باستخدام toupper()
# 2. تحويل last_name إلى أحرف صغيرة باستخدام tolower()
# 3. دمجهم في full_name باستخدام paste()
# 4. حساب عدد الأحرف باستخدام nchar()
# 5. إنشاء username باستخدام paste0() (بأحرف صغيرة بالكامل)

# طباعة النتائج
print(full_name)
print(char_count)
print(username)
quiz iconاختبر نفسك

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

جميع دروس Fundamentals