استخراج و جایگزین کردن رشته ها
براي استخراج قسمتي از يک رشته مي توان از متد ()substring استفاده کرد. اين متد دو آرگومان قبول مي کند که يکي انديس شروع و ديگري طولي از رشته را که مي خواهيم استخراج کنيم را نشان مي دهد. به مثال زير توجه کنيد.
String str1 = "This is a sample string."; String str2 = str1.substring(10, 16); System.out.println("str1 = " + str1); System.out.println("str2 = " + str2);
str1 = This is a sample string. str2 = sample
استخراج را از انديس 10 شروع کرده ايم (آرگومان اول که عدد 10 است). همانطور که مشاهده مي کنيد کلمه “sample” از انديس 10 شروع شده است (کاراکتر يازدهم). آرگومان دوم نشان مي دهد که ما تا چندمین کاراکتر را مي خواهيم استخراج کنيم. ازآنجاييکه قرار است کلمه sample را استخراج کنیم و این کلمه 6 حرفی است پس باید آرگومان دوم را 16 بنویسیم یعنی قرار است از 10 تا 16 را استخراج کنم. اگر نخواهيد که مکان قرار گرفتن کلمه “sample” را به صورت دستي شمارش کنيد مي توانيد با استفاده از متد ()indexOf اين کار را انجام دهيد.
String str2 = str1.substring(str1.indexOf("sample"), 16);
يکي ديگر ازسربارگذاريهاي متد ()substirng فقط يک آرگومان که براي تعيين کردن انديس شروع استخراج به کار مي رود را قبول مي کند در نتيجه استخراج از اين انديس شروع شده و تا پايان رشته ادامه مي يابد.
جايگزين کردن رشته ها با استفاده از متد replace، replaceFirst و repalceAll
با استفاده از متد ()replace مي توان يک رشته خاص را با يک رشته ديگر عوض کرد. به عنوان مثال در کد زير مي توان کلمه “dog” را با کلمه “cat” عوض کرد.
String str1 = "That dog is a lovely dog."; System.out.println(str1); System.out.println("Replacing all dogs with cats..."); str1 = str1.replace("dog", "cat"); System.out.println(str1);
That dog is a lovely dog. Replacing all dogs with cats... That cat is a lovely cat.
متد ()replace دو آرگومان قبول مي کند. اولين آرگومان رشته اي است که مي خواهيم آن را با يک رشته جديد جايگزين کنيم (رشته قديم) و ديگري رشته جديد است. متد ()replace تمام کلمات “dog” واقع در رشته را پيدا کرده و کلمه “cat” را جايگزين آنها مي کند. حال اگر بخواهید فقط اولین کلمه dog به وسیله کلمه cat جایگزین شود می توانید از متد ()replaceFirst استفاده کنید :
String str1 = "That dog is a lovely dog."; System.out.println(str1); System.out.println("Replacing all dogs with cats..."); str1 = str1.replaceFirst("dog", "cat"); System.out.println(str1);
That dog is a lovely dog. Replacing all dogs with cats... That cat is a lovely dog.
متد ()replaceAll هم یک سری کاراکتر به عنوان الگو می گیرد و در هر جای رشته که آنها را پیدا کند با رشته یا کاراکتری که خودمان می خواهیم جایگزین می کند. فرض کنید که در داخل رشته ای علائمی مانند +، – و * قرار دارند و می خواهیم آنها را حذف کنیم برای این کار به صورت زیر عمل می کنیم :
String str1 = "--+Hello +World!***"; String result = str1.replaceAll("[*+-]",""); System.out.println(result);
Hello World!
همانطور که در کد بالا مشاهده می کنیداین متد دو آرگومان می گیرد که اولین آرگومان کاراکترهایی هستند که آنها را در داخل جفت کروشه به صورت رشته قرار داده ایم و دومین آرگومان هم که “” (جفت کوتیشن بدون فاصله) می باشد که برای حذف کردن کارکترها به کار برده ایم.
سلام وقت بخیر من میخواستم بدونم که اگر بخواهم که رشته ورودی حروف o و e رو باهم جایگزین کنه و اگه رشته ورودی هیچکدوم از حرف های o و e رو نداشته باشه none را به عنوان خروجی چاپ کنه به چه صورت میشه؟
ممنون میشم اگر راهنمایی بفرمایید
سلام… به سیستم دسترسی ندارم ولی همچینی چیزی میشه. شما باید اول چک کنید ببینید حرف مثلا o تو رشته وجود داره یا نه
سلام خسته نباشید
من یک سری عدد دارم می خوام صفرهای اولشو پاک کنم مثلا
اگر 00001 باشیه فقط عدد 1 را نمایش بده یا اگر 00061 بود فقط 61 بده در اصل صفرهای قبل از اعداد رو پاک کنه همه این صفر ها قبل از اعداد است چکرا باید بکنم
سلام
اول از هر چیز ممنون میشم ز این به بعد سوالاتتونو تو بخش پرسش و پاسخ مطرح بفرمایید. اینم جواب سوالتون که هم در درس های قبلی و هم بعدی هست
به صورت زیر هم میشه نوشت