Skip to content

7. Strings — متن

Difficulty: Beginner — مبتدی
Time: ~20 minutes


Creating Strings — متن بنانا

متغیر الف = "دہری قوسین";
متغیر ب  = 'اکہری قوسین';
متغیر ج  = `بیک ٹک متن`;      // template string

لکھو(الف);    // دہری قوسین
لکھو(ب);      // اکہری قوسین
لکھو(ج);      // بیک ٹک متن

اردو: تینوں طریقوں سے متن بنایا جا سکتا ہے۔ بیک ٹک ` متن میں ${...} سے متغیر اور اظہار ڈالے جا سکتے ہیں۔


Concatenation — جوڑنا

Combine strings with +:

متغیر پہلا = "اردو";
متغیر دوسرا = " پروگرامنگ";
لکھو(پہلا + دوسرا);            // اردو پروگرامنگ
لکھو("نام: " + "احمد");        // نام: احمد

اردو: + سے دو متن جوڑے جا سکتے ہیں۔ لیکن عدد کو پہلے متن() سے تبدیل کریں ورنہ غلطی آئے گی۔

متغیر عمر = 25;
// لکھو("عمر: " + عمر);          // ← ERROR
لکھو("عمر: " + متن(عمر));        // ✓  عمر: 25
لکھو(`عمر: ${عمر}`);             // ✓  عمر: 25  (better way)

String Length — متن کی لمبائی

متغیر الفاظ = "السلام علیکم";
لکھو(لمبائی(الفاظ));    // 13  (characters including space)

لکھو(لمبائی("اردو"));   // 4
لکھو(لمبائی(""));       // 0

اردو: لمبائی() سے متن میں حروف کی تعداد جانیں (خالی جگہیں بھی گنی جاتی ہیں)۔


Accessing Characters — حروف تک رسائی

Use index notation [index]. Indices start at 0:

متغیر لفظ = "اردو";
لکھو(لفظ[0]);    // ا  (first character)
لکھو(لفظ[1]);    // ر
لکھو(لفظ[2]);    // د
لکھو(لفظ[3]);    // و  (last character)

Negative indices — منفی اشاریے:

لکھو(لفظ[-1]);    // و  (last)
لکھو(لفظ[-2]);    // د  (second to last)

اردو: منفی اشاریہ آخر سے گنتا ہے: -1 آخری حرف، -2 آخر سے دوسرا۔


Slicing — کاٹنا

Extract a portion of a string with [start:end]:

متغیر جملہ = "اردو پروگرامنگ زبان";

لکھو(جملہ[0:4]);      // اردو   (index 0,1,2,3 — not including 4)
لکھو(جملہ[5:15]);     // پروگرامنگ
لکھو(جملہ[16:]);      // زبان  (from index 16 to end)
لکھو(جملہ[:4]);       // اردو  (from start to index 3)
لکھو(جملہ[-5:]);      // زبان  (last 5 characters)

اردو: [شروع:آخر] سے متن کا حصہ نکالیں۔ آخر والا اشاریہ شامل نہیں ہوتا۔ [:4] مطلب صفر سے شروع، [5:] مطلب 5 سے آخر تک۔


String Methods — متن کے طریقے

These methods are called with dot notation on the string:

متغیر متن_م = "  السلام علیکم اردو  ";

// Remove whitespace
لکھو(متن_م.چھاٹو());              // السلام علیکم اردو

// Case (works for ASCII characters)
لکھو("hello".بڑے_حروف());        // HELLO
لکھو("WORLD".چھوٹے_حروف());      // world

// Search
لکھو("اردو پروگرامنگ".شامل_ہے("اردو"));        // True
لکھو("اردو پروگرامنگ".شروع_ہے("اردو"));        // True
لکھو("اردو پروگرامنگ".ختم_ہے("نگ"));           // True
لکھو("اردو پروگرامنگ".مقام("پروگرامنگ"));      // 5

// Replace
لکھو("السلام علیکم".بدلو("علیکم", "اردو"));    // السلام اردو

// Repeat
لکھو("ہا".دہراؤ(3));              // ہاہاہا

// Padding (for formatting numbers)
لکھو("7".padStart(4, "0"));      // 0007
لکھو("7".padEnd(4, "-"));        // 7---

اردو: .چھاٹو() شروع اور آخر کی خالی جگہیں ہٹاتا ہے۔ .شامل_ہے() بتاتا ہے کہ متن موجود ہے یا نہیں۔ .مقام() متن کہاں ملا وہ اشاریہ دیتا ہے (-1 اگر نہ ملے)۔ .بدلو() پہلی مطابقت بدلتا ہے۔


Built-in String Functions — بنا بنایا فنکشنز

// ربط — join a list into a string
لکھو(ربط(", ", ["احمد", "فاطمہ", "علی"]));
// احمد, فاطمہ, علی

لکھو(ربط(" — ", [1, 2, 3]));
// 1 — 2 — 3

لکھو(ربط("", ["ا", "ر", "د", "و"]));
// اردو

// تقسیم — split a string into a list
لکھو(تقسیم("احمد فاطمہ علی"));
// ['احمد', 'فاطمہ', 'علی']

لکھو(تقسیم("ایک,دو,تین", ","));
// ['ایک', 'دو', 'تین']

// شامل — check if sub is in string (or list)
لکھو(شامل("اردو پروگرامنگ", "اردو"));    // True
لکھو(شامل("اردو پروگرامنگ", "جاوا"));    // False

اردو: ربط(جوڑنے_والا, فہرست) فہرست کو ایک متن میں جوڑتا ہے۔ تقسیم(متن) متن کو فہرست میں توڑتا ہے۔ شامل(متن, ذیلی_متن) بتاتا ہے کہ ذیلی متن موجود ہے یا نہیں۔


String and Numbers — متن اور اعداد

// Convert number to string
لکھو(متن(42));           // "42"
لکھو(متن(3.14));         // "3.14"

// Convert string to number
لکھو(عدد("100"));        // 100
لکھو(اعشاریہ("3.14"));   // 3.14
لکھو(عدد("abc"));        // nan  (failed conversion)

// Check for NaN
متغیر ن = عدد("xyz");
لکھو(نان_ہے(ن));         // True

اردو: متن() عدد کو متن میں بدلتا ہے۔ عدد() متن کو عدد میں۔ اگر تبدیلی ناکام ہو تو نان ملتا ہے — نان_ہے() سے جانچیں۔


Multiline Strings — کئی سطروں کا متن

متغیر خط = `السلام علیکم،

میرا نام احمد ہے۔
میں اردو پروگرامنگ سیکھ رہا ہوں۔

خدا حافظ`;

لکھو(خط);

Output:

السلام علیکم،

میرا نام احمد ہے۔
میں اردو پروگرامنگ سیکھ رہا ہوں۔

خدا حافظ

اردو: بیک ٹک ` متن کئی سطروں پر پھیلا سکتا ہے۔ یہ لمبے پیغامات، HTML، یا SQL لکھنے کے لیے مفید ہے۔


Practical Example: Name Formatter — عملی مثال: نام فارمیٹر

فنکشن نام_فارمیٹ(پورا_نام) {
    متغیر حصے = تقسیم(پورا_نام.چھاٹو());
    اگر (لمبائی(حصے) < 2) {
        واپس پورا_نام.چھاٹو();
    }
    متغیر پہلا = حصے[0];
    متغیر آخری = حصے[لمبائی(حصے) - 1];
    واپس `${آخری}، ${پہلا}`;
}

لکھو(نام_فارمیٹ("محمد احمد"));      // احمد، محمد
لکھو(نام_فارمیٹ("فاطمہ علی خان"));  // خان، فاطمہ

اردو: یہ مثال دکھاتی ہے کہ متن کو توڑنا، حصوں تک رسائی، اور سانچہ متن سے جوڑنا کیسے ملتا ہے ایک کام کرنے والے فنکشن میں۔


Key Points — اہم نکات

  • Strings use "...", '...', or `...` (template)
  • Template strings embed values with ${expr}
  • Index access: لفظ[0] first character, لفظ[-1] last
  • Slicing: متن[2:5] characters at indices 2, 3, 4
  • Methods: .چھاٹو(), .شامل_ہے(), .بدلو(), .دہراؤ(), .مقام()
  • Functions: ربط(sep, list), تقسیم(str), شامل(str, sub), لمبائی(str)

اردو: متن "..." یا بیک ٹک میں۔ [0] پہلا حرف، [-1] آخری۔ ربط() فہرست جوڑتا ہے، تقسیم() توڑتا ہے، شامل() تلاش کرتا ہے۔


← Previous: Input & Output | Next: Arithmetic Operators →