JavaRush /وبلاگ جاوا /Random-FA /کافه استراحت شماره 241. نحوه تبدیل رشته ها به آرایه - راه...

کافه استراحت شماره 241. نحوه تبدیل رشته ها به آرایه - راهنمای تفصیلی

در گروه منتشر شد
منبع: FreeCodeCamp با این آموزش، نحوه تبدیل رشته به آرایه را خواهید آموخت. این مهارت در هنگام توسعه برنامه های پردازش کلمه یا کار با داده ها مفید خواهد بود. کافه استراحت شماره 241.  نحوه تبدیل رشته ها به آرایه - راهنمای تفصیلی - 1یک رشته در جاوا گروهی از کاراکترها است، در حالی که یک آرایه مجموعه ای از عناصر از همان نوع است. می توانید یک رشته را با استفاده از فرآیند تبدیل به قطعات تقسیم کنید و سپس آن قطعات را برای پردازش یا تجزیه و تحلیل بیشتر در یک آرایه ذخیره کنید. روش های جاوا مختلفی برای تبدیل رشته ها به آرایه وجود دارد. دانستن آنها به شما این امکان را می دهد که بهترین گزینه را انتخاب کنید که با نیازهای برنامه نویسی شما مطابقت دارد.

نحوه تبدیل رشته به آرایه با استفاده از متد ()toCharArray

متد toCharArray() یک تابع جاوا داخلی است که به شما امکان می دهد یک رشته را به آرایه ای از کاراکترها و هر کاراکتر رشته را به عنصری از آرایه تبدیل کنید. این متد در کلاس String موجود است .

نحو و استفاده از متد ()toCharArray:

public class StringToArrayExample {
    public static void main(String[] args) {
        String str = "Hello, World!";

        // Преобразовать строку в массив символов
        char[] charArray = str.toCharArray();

        // Распечатать элементы массива
        for (char c : charArray) {
            System.out.println(c);
        }
    }
}

توضیح رویه:

  1. یک متغیر رشته str را اعلام کرده و رشته مورد نظر را به آن اختصاص دهید.
  2. از متد toCharArray() در رشته str برای تبدیل آن به آرایه کاراکتری استفاده کنید . این روش یک رشته را به کاراکترهای جداگانه تقسیم می کند و یک آرایه حاوی آن کاراکترها را برمی گرداند.
  3. آرایه کاراکتر به دست آمده را در یک متغیر charArray ذخیره کنید .
  4. از طریق charArray با استفاده از یک حلقه for-eve برای چاپ هر کاراکتر به صورت جداگانه تکرار کنید .
نتیجه:
سلام دنیا !

مزایای استفاده از toCharArray():

  • Simplicity: متد toCharArray() یک روش ساده برای تبدیل رشته به آرایه کاراکتری تنها با یک فراخوانی متد ارائه می دهد.
  • خوانایی: آرایه کاراکتر به دست آمده را می توان به راحتی تغییر داد، دستکاری کرد یا از طریق حلقه ها تکرار کرد.
  • رشته های غیرقابل تغییر: از آنجایی که رشته ها در جاوا تغییر ناپذیر هستند، تبدیل آنها به یک آرایه کاراکتر می تواند زمانی مفید باشد که شما نیاز به تغییر کاراکترهای فردی دارید.

معایب استفاده از toCharArray():

  • افزایش استفاده از حافظه: متد toCharArray() یک آرایه کاراکتر جدید ایجاد می کند که به حافظه اضافی نیاز دارد. اگر با رشته های بزرگ کار می کنید این می تواند مشکل ساز باشد.
  • عملکرد: ایجاد یک آرایه کاراکتر جدید و کپی کردن کاراکترها ممکن است منجر به کاهش عملکرد در مقایسه با روش‌های دیگر، به خصوص برای رشته‌های طولانی شود.

چگونه یک رشته را با استفاده از متد split() تقسیم کنیم

متد split() در جاوا روشی مناسب برای تقسیم یک رشته به آرایه‌ای از رشته‌های فرعی بر اساس یک جداکننده معین است. این متد در کلاس String موجود است .

نحو و استفاده از متد split():

String[] split(String delimiter)
این متد یک جداکننده را به عنوان آرگومان می گیرد که نقاطی را که رشته باید در آنها تقسیم شود را مشخص می کند. جداکننده می تواند یک عبارت منظم یا یک رشته ساده باشد. کد مثال نشان دهنده تبدیل با استفاده از split() :
string = "Hello,World,How,Are,You?"
delimiter = ","

split_string = string.split(delimiter)
print(split_string)

توضیح رویه:

  1. یک متغیر رشته ای به نام string تعریف می کنیم . این شامل متنی است که می خواهیم از هم جدا کنیم: "سلام، دنیا، چطور، هستی، تو؟"
  2. ما جدا کننده کاما ( , ) را که می خواهیم برای جداسازی رشته استفاده کنیم و آن را به متغیر جداکننده اختصاص دهیم مشخص می کنیم .
  3. سپس از متد split() روی متغیر رشته استفاده می کنیم و جداکننده را به عنوان آرگومان ارسال می کنیم . این رشته را به زیر رشته‌هایی تقسیم می‌کند که هرجا جداکننده یافت می‌شود .
  4. متد split() لیستی از رشته های فرعی را برمی گرداند که آن ها را به متغیر split_string نسبت می دهیم .
  5. در نهایت لیست split_string را چاپ می کنیم تا نتیجه را ببینیم.
نتیجه:
['سلام'، 'دنیا'، 'چطور'، 'حالت'، 'شما؟']

مزایای استفاده از split():

  • راحت و آسان برای استفاده.
  • به شما امکان می دهد یک رشته را بر اساس یک جداکننده مشخص تقسیم کنید.
  • از عبارات منظم به عنوان جداکننده پشتیبانی می کند و گزینه های جداکننده انعطاف پذیر را ارائه می دهد.

معایب استفاده از split():

  • اگر جداکننده در رشته یافت نشد، رشته اصلی به عنوان یکی از عناصر آرایه به دست آمده برگردانده می شود.
  • کار کردن با عبارات منظم ممکن است مشکل باشد و استفاده نادرست می تواند منجر به نتایج غیرمنتظره شود.
  • تقسیم یک رشته بزرگ با استفاده از یک عبارت منظم پیچیده می تواند از نظر محاسباتی گران باشد.

نحوه تبدیل رشته به آرایه با استفاده از StringTokenizer

کلاس StringTokenizer در جاوا یک کلاس قدیمی است که روشی مناسب برای توکن کردن یا تقسیم یک رشته به توکن‌های جداگانه ارائه می‌کند. معمولاً برای تبدیل یک رشته به آرایه با تقسیم آن بر اساس یک جداکننده مشخص استفاده می شود.

نحو و استفاده از StringTokenizer:

برای استفاده از StringTokenizer ، ابتدا باید یک نمونه از کلاس StringTokenizer ایجاد کنید و یک رشته و یک جداکننده را به عنوان پارامتر ارسال کنید:
StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter);
کد مثال:
import java.util.StringTokenizer;

public class StringToArrayExample {
    public static void main(String[] args) {
        String inputString = "Hello,World,How,Are,You?";

        // Creation an object StringTokenizer с разделителем ","
        StringTokenizer tokenizer = new StringTokenizer(inputString, ",");

        int tokenCount = tokenizer.countTokens();
        String[] stringArray = new String[tokenCount];

        // Преобразование каждого токена в элементы массива
        for (int i = 0; i < tokenCount; i++) {
            stringArray[i] = tokenizer.nextToken();
        }

        // Печать выходного массива
        for (String element : stringArray) {
            System.out.println(element);
        }
    }
}

توضیح رویه:

  1. کد با ایجاد یک شی StringTokenizer به نام tokenizer از رشته ورودی و با "," مشخص می شود .
  2. متد countTokens() برای بدست آوردن تعداد کل نشانه های موجود در رشته ورودی استفاده می شود. این مقدار در متغیر tokenCount ذخیره می شود .
  3. stringArray نامیده شده با اندازه ای برابر با tokenCount ایجاد می شود .
  4. متد nextToken() در یک حلقه برای تکرار در هر نشانه و اختصاص شاخص مربوطه به آن در stringArray استفاده می شود .
  5. در نهایت، یک حلقه for برای چاپ هر عنصر در فایل stringArray استفاده می شود .
نتیجه:
سلام دنیا چطوری؟

برنامه های کاربردی StringTokenizer

StringTokenizer می تواند در سناریوهای مختلفی مفید باشد، از جمله:
  • تجزیه و تحلیل داده های ورودی ساختار یافته با یک جداکننده سازگار.
  • استخراج کلمات یا اجزای جداگانه از یک جمله یا پاراگراف.
  • تفکیک مقادیر جدا شده با کاما به عناصر جداگانه.
  • نشانه گذاری متن برای تحلیل واژگانی یا وظایف پردازش زبان.

مزایای استفاده از StringTokenizer:

  • سادگی: نحو StringTokenizer ساده و سرراست است و برای مبتدیان قابل دسترسی است.
  • کارایی: StringTokenizer از نظر حافظه و عملکرد در مقایسه با عبارات معمولی یا تقسیم دستی مبتنی بر کاراکتر کارآمد است.
  • جداکننده‌های انعطاف‌پذیر: می‌توانید چندین جداکننده مشخص کنید یا از مجموعه‌ای از جداکننده‌های از پیش تعریف‌شده استفاده کنید، که امکان توکن‌سازی جهانی را فراهم می‌کند.
  • پردازش تکراری: StringTokenizer به شما امکان می‌دهد تا توکن‌ها را به صورت تکراری پردازش کنید، و برای پردازش رشته‌های بزرگ بدون بارگیری همه چیز در حافظه به یکباره مفید است.

معایب استفاده از StringTokenizer:

  • عملکرد محدود: StringTokenizer فاقد برخی ویژگی‌های پیشرفته موجود در جایگزین‌های مدرن است، مانند عبارات منظم، که انعطاف‌پذیری بیشتری در توکن‌سازی الگوهای پیچیده ارائه می‌کنند .
  • عدم پشتیبانی از عبارات منظم: بر خلاف روش‌های دیگر مانند متد split() ، StringTokenizer نمی‌تواند از عبارات منظم به عنوان جداکننده استفاده کند، که قابلیت‌های توکن‌سازی آن را محدود می‌کند.
  • عدم پشتیبانی از توکن های خالی: StringTokenizer به طور پیش فرض توکن های خالی را مدیریت نمی کند. اگر جداکننده های متوالی دارید، به عنوان یک جداکننده واحد در نظر گرفته می شوند که می تواند منجر به نتایج غیرمنتظره شود.
  • کلاس منسوخ شده: StringTokenizer بخشی از چارچوب مجموعه های جاوا قدیمی است و رابط Iterable را پیاده سازی نمی کند ، به این معنی که نمی توان از آن در حلقه های توسعه یافته استفاده کرد .

نحوه تبدیل دستی هر کاراکتر یک رشته به عنصر آرایه

در شرایط خاص، ممکن است به کنترل بیشتری بر فرآیند تبدیل نیاز داشته باشید یا بخواهید آن را مطابق با نیازهای خاص خود سفارشی کنید. در چنین مواردی، می‌توانید با تکرار دستی روی هر کاراکتر در رشته و اختصاص دادن آنها به عناصر جداگانه در آرایه، رشته را به یک آرایه تبدیل کنید. کد نمونه نشان دهنده تبدیل دستی:
string = "Hello, World!"
array = []

for char in string:
    array.append(char)

print(array)

توضیح رویه:

  1. یک رشته متغیر رشته ای با مقدار "Hello, World!" تعریف می کنیم. .
  2. یک لیست خالی به نام آرایه را مقداردهی اولیه می کنیم .
  3. ما از یک حلقه for برای تکرار روی هر char در رشته استفاده می کنیم .
  4. در داخل حلقه، از متد append() برای اضافه کردن هر char به آرایه استفاده می کنیم .
  5. پس از اتمام حلقه، آرایه را چاپ می کنیم تا نتیجه را ببینیم.
نتیجه:
['H'، 'e'، 'l'، 'l'، 'o'، '،'، ' '، 'W'، 'o'، 'r'، 'l'، 'd'، '!']

مزایای تبدیل دستی:

  • کنترل کامل بر فرآیند تبدیل را فراهم می کند.
  • اجازه می دهد تا کاراکترها قبل از تخصیص به یک آرایه سفارشی یا دستکاری شوند.
  • زمانی که نیاز به انجام عملیات اضافی در حین تبدیل دارید، به خوبی کار می کند.

معایب تبدیل دستی:

  • در مقایسه با روش‌های داخلی مانند ()toCharArray یا split() به کد و پردازش دستی بیشتری نیاز دارد .
  • ممکن است برای رشته های بزرگ به دلیل فرآیند تکرار دستی کارایی کمتری داشته باشد.
  • در صورت اجرای نادرست، خطر خطا را افزایش می دهد.
توجه داشته باشید. اگر نیاز به انجام عملیات خاصی در طول فرآیند تبدیل دارید، بهتر است روش تبدیل دستی را انتخاب کنید. در غیر این صورت، روش‌های داخلی مانند ()toCharArray یا split() برای سادگی و کارایی توصیه می‌شوند .

مقایسه روش های مختلف

toCharArray():

  • یک روش ساده و واضح.
  • یک آرایه کاراکتری که یک رشته را نشان می دهد برمی گرداند.
  • مناسب برای تبدیل های عمومی بدون نیازهای خاص.

شکاف():

  • یک رشته را بر اساس جداکننده مشخص شده به آرایه تقسیم می کند.
  • اگر نیاز دارید یک رشته را به زیر رشته ها تقسیم کنید مفید است.
  • انعطاف پذیری را در انتخاب قالب جداکننده فراهم می کند.

StringTokenizer:

  • به طور خاص برای نشانه گذاری رشته مبتنی بر جداکننده طراحی شده است.
  • به شما امکان می‌دهد کاراکترهای جداکننده را سفارشی کنید.
  • مناسب برای زمانی که به کنترل دانه ای روی فرآیند توکن سازی نیاز دارید.

تبدیل دستی:

  • کنترل کامل بر فرآیند تبدیل را فراهم می کند.
  • به شما امکان می‌دهد تا عملیات اضافی روی نمادها را پیکربندی و انجام دهید.
  • توصیه می شود در صورت نیاز به شرایط خاص در طول تبدیل.

چرا باید بدانید که چگونه یک رشته را در جاوا به آرایه تبدیل کنید؟

اهمیت تبدیل رشته به آرایه در جاوا در تطبیق پذیری و انعطاف پذیری آن برای پردازش داده ها نهفته است. در اینجا چند دلیل کلیدی وجود دارد که چرا توانایی تبدیل رشته به آرایه در جاوا مهم است:
  • دستکاری داده. آرایه ها روشی ساختاریافته برای ذخیره و دستکاری داده ها در جاوا ارائه می دهند. با تبدیل یک رشته به یک آرایه، می توانید به کاراکترها یا زیر رشته ها دسترسی داشته باشید، داده ها را اصلاح کنید و عملیات مختلفی مانند مرتب سازی، جستجو یا فیلتر کردن را انجام دهید.
  • عملیات الگوریتمی بسیاری از الگوریتم ها و ساختارهای داده در جاوا نیاز به ورودی در قالب آرایه دارند. با تبدیل یک رشته به آرایه، می توانید به راحتی این الگوریتم ها را اعمال کنید و عملیاتی مانند مرتب سازی، معکوس کردن یا بازیابی عناصر خاص را انجام دهید.
  • تجزیه و تحلیل متن. رشته ها اغلب حاوی داده های ساختاریافته یا محدود شده هستند، مانند CSV (مقادیر جدا شده با کاما) یا JSON (نشانگذاری شی جاوا اسکریپت). تبدیل رشته به آرایه به شما این امکان را می دهد که داده ها را تجزیه و تحلیل کنید و امکان تجزیه و تحلیل بیشتر، پردازش یا استخراج اطلاعات خاص را فراهم می کند.
  • دستکاری رشته در حالی که رشته ها مجموعه ای از روش های دستکاری خاص خود را دارند، آرایه ها انعطاف پذیری بیشتری را ارائه می دهند. تبدیل رشته به آرایه به شما این امکان را می دهد که از عملیات خاص آرایه مانند نمایه سازی، برش یا الحاق برای مدیریت کارآمدتر داده ها یا برآوردن الزامات قالب بندی خاص استفاده کنید.
  • سازگاری: در برخی سناریوها، ممکن است برای تعامل با کتابخانه ها یا APIهایی که انتظار ورودی مبتنی بر آرایه را دارند، لازم باشد رشته ای را به آرایه تبدیل کنید. با انجام تبدیل، می توانید به راحتی داده های رشته خود را با اجزای خارجی ادغام کنید و از سازگاری اطمینان حاصل کنید و تبادل یکپارچه داده ها را امکان پذیر کنید.

نتیجه

در این مقاله به روش های مختلفی برای تبدیل رشته به آرایه در جاوا پرداخته ایم. شما در مورد چهار راه مختلف یاد گرفتید: استفاده از متد toCharArray() ، تقسیم یک رشته با استفاده از متد split() ، استفاده از StringTokenizer و تبدیل دستی هر کاراکتر به یک عنصر آرایه. ما هر روش را با جزئیات پوشش داده ایم، از جمله نحو، استفاده، کد نمونه، جوانب مثبت و منفی.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION