نوع داده متنی: الفبا، اعداد و نشانهها در کنار هم
زیرساختهای یک دادهی متنی
یک دادهی متنی در حقیقت یک دنباله است که از کنار هم قرار گرفتن کوچکترین واحدها یعنی کاراکترها به وجود میآید. کاراکتر میتواند یک حرف الفبا باشد، مانند «ب» یا «ص»؛ میتواند یک عدد باشد، مثل «۵» یا «۹»؛ و حتی میتواند یک نشانه مثل «؟» یا «@» باشد. وقتی یک برنامهنویس از این نوع داده استفاده میکند، کامپیوتر تکتک این کاراکترها را به ترتیب در حافظه نگه میدارد تا بتواند روی آنها عملیات انجام دهد. مثلاً اگر بخواهیم نام کاربری یا پیام یک کاربر را ذخیره کنیم، از همین نوع داده کمک میگیریم. جالب است بدانید که حتی یک فاصله خالی هم یک کاراکتر محسوب میشود و در پردازش متن نقش مهمی دارد. به این ترتیب، دادهی متنی مثل یک نوار بلند از حروف و علائم است که برنامهنویس میتواند به راحتی آن را تغییر دهد، با دادهی دیگر ترکیب کند یا بخشی از آن را جدا کند.
برای درک بهتر این موضوع، به تفاوت بین یک عدد معمولی و یک عدد درون متن توجه کنید. عدد ۱۲ اگر به عنوان نوع عددی ذخیره شود، قابل محاسبه است؛ اما اگر به عنوان نوع متنی ذخیره شود، مانند دو کاراکتر «۱» و «۲» خواهد بود و نمیتوان روی آن عمل جمع یا ضرب انجام داد. این تفاوت در برنامهنویسی خیلی مهم است و باید بدانیم هر داده چه نوعی دارد.
مثالهای ملموس در دنیای دانشآموز
فرض کنید توی گوشی همراه خود، یک پیامک تایپ میکنید. تمام حروف، اعداد، نشانهها و حتی فاصلههایی که بین کلمات میگذارید، یک دادهی متنی بزرگ میسازند. وقتی پیامک را برای دوستتان میفرستید، همان دادهی متنی به صورت یک رشته به گوشی او میرسد. یا وقتی در دفتر مشق خود، جملهای مینویسید، در واقع یک رشتهی متنی روی کاغذ ثبت کردهاید. حتی نامهایتان در کارنامه، عنوان کتابهای درسی، یا کد ملی که با خط تیره نوشته میشود، همه نمونههایی از دادهی متنی هستند. در فضای مجازی، وقتی یک نظر در شبکههای اجتماعی میگذارید یا یک جستجو در موتورهای جستجو انجام میدهید، در حال کار با رشتهها هستید. به همین سادگی، این نوع داده همهجا حضور دارد و به ما کمک میکند تا ارتباط برقرار کنیم و اطلاعات را به شکل خوانا ذخیره کنیم.
| ویژگی | نوع عددی | نوع متنی |
|---|---|---|
| نمونه | ۱۵ | «۱۵» |
| قابلیت محاسبه | بله | خیر |
| تعداد کاراکترها | معنادار نیست | ۲ کاراکتر |
| کاربرد اصلی | محاسبات ریاضی | ذخیره و نمایش متن |
چالشهای مفهومی با پرسش و پاسخ
پاسخ: خیر. در نوع متنی، «۰» فقط یک کاراکتر است، یعنی یک علامت که قابل خواندن است؛ اما در نوع عددی، صفر یک مقدار ریاضی است که میتوان روی آن عمل جمع و تفریق انجام داد. پس این دو کاملاً متفاوت هستند، حتی اگر شکل یکسانی داشته باشند.
پاسخ: چون برنامهنویسی به کاراکترها از نظر ریاضی نگاه نمیکند. برای مثال، اگر «۳» و «۴» را به صورت متنی داشته باشیم، برنامه آنها را به عنوان دو کاراکتر جداگانه میبیند و نه دو عدد. بنابراین برای جمع زدن، حتماً باید نوع داده را به عددی تبدیل کنیم. این یکی از اشتباهات رایج تازهکاران است.
پاسخ: بله، فاصله هم یک کاراکتر محسوب میشود و در طول رشته تأثیر میگذارد. مثلاً «سلام دوست» با «سلامدوست» دو رشتهی متفاوت هستند. گاهی یک فاصلهی اضافی میتواند باعث شود که جستجو یا مقایسهی دو متن به درستی انجام نشود. به همین دلیل، در برنامهنویسی باید به وجود یا نبود فاصله دقت کرد.
نکتهی پایانی: نوع داده متنی یکی از پرکاربردترین ابزارها در برنامهنویسی است. هر جا که نیاز داشته باشیم متنی را ذخیره، نمایش یا تغییر دهیم، از این نوع داده استفاده میکنیم. شناخت تفاوت آن با نوع عددی و توجه به جزئیاتی مثل فاصله و کاراکترهای خاص، به ما کمک میکند تا برنامههای دقیقتری بنویسیم. به یاد داشته باشید که هر کاراکتر، حتی یک نقطه یا یک فاصله، در دادهی متنی ارزش دارد و در پردازش آن موثر است. پس دفعهی بعد که یک پیام متنی تایپ میکنید یا نام خود را در فرمی وارد میکنید، بدون اینکه فکر کنید، با یک دادهی متنی سر و کار دارید.