در این آموزش با کمک مثال هایی با متد ()split در جاوا آشنا می شویم.
متد split()
، رشته را بر اساس regex مشخص شده تقسیم می کند و آرایه ای از رشته های فرعی را برمی گرداند.
مثال
class Main {
public static void main(String[] args) {
String text = "Java is a fun programming language";
// split string from space
String[] result = text.split(" ");
System.out.print("result = ");
for (String str : result) {
System.out.print(str + ", ");
}
}
}
// Output: result = Java, is, a, fun, programming, language,
سینتکس split()
سینتکس متد split()
به صورت زیر است:
string.split(String regex, int limit)
اینجا،رشته یک شی از کلاس String
است.
پارامترهای split()
متد رشته split()
می تواند دو پارامتر داشته باشد:
- regex – رشته بر اساس این regex تقسیم می شود (می تواند رشته باشد)
- limit (اختیاری) – تعداد زیر رشته های حاصل را کنترل می کند
اگر پارامتر limit
ارسال نشود، split()
تمام زیررشتههای ممکن را برمیگرداند.
مقدار بازگشتی split()
- آرایه ای از رشته های فرعی را برمی گرداند
توجه: اگر “عبارت منظم (regex)” ارسال شده به split()
نامعتبر باشد، متد split()
خطای PatternSyntaxExpression
را ارسال می کند.
مثال 1: split() بدون پارامتر limit
// importing Arrays to convert array to string
// used for printing arrays
import java.util.Arrays;
class Main {
public static void main(String[] args) {
String vowels = "a::b::c::d:e";
// splitting the string at "::"
// storing the result in an array of strings
String[] result = vowels.split("::");
// converting array to string and printing it
System.out.println("result = " + Arrays.toString(result));
}
}
خروجی
نتیجه = [a, b, c, d:e]
در اینجا، ما رشته را بر اساس ::
تقسیم می کنیم . از آنجایی که پارامتر limit
ارسال نشده است، آرایه برگشتی شامل تمام رشته های فرعی است.
split() با پارامتر limit
- اگر پارامتر
limit
برابر با 0 یا منفی باشد،split()
آرایه ای حاوی تمام رشته های فرعی را برمی گرداند. - اگر پارامتر
limit
مثبت باشد (مثلاًn
)،split()
حداکثرn
رشته فرعی را برمی گرداند.
مثال 2: split() با پارامتر limit
// importing Arrays to convert array to string
import java.util.Arrays;
class Main {
public static void main(String[] args) {
String vowels = "a:bc:de:fg:h";
// splitting array at ":"
// limit is -2; array contains all substrings
String[] result = vowels.split(":", -2);
System.out.println("result when limit is -2 = " + Arrays.toString(result));
// limit is 0; array contains all substrings
result = vowels.split(":", 0);
System.out.println("result when limit is 0 = " + Arrays.toString(result));
// limit is 2; array contains a maximum of 2 substrings
result = vowels.split(":", 2);
System.out.println("result when limit is 2 = " + Arrays.toString(result));
// limit is 4; array contains a maximum of 4 substrings
result = vowels.split(":", 4);
System.out.println("result when limit is 4 = " + Arrays.toString(result));
// limit is 10; array contains a maximum of 10 substrings
result = vowels.split(":", 10);
System.out.println("result when limit is 10 = " + Arrays.toString(result));
}
}
خروجی
result when limit is -2 = [a, bc, de, fg, h]
result when limit is 0 = [a, bc, de, fg, h]
result when limit is 2 = [a, bc:de:fg:h]
result when limit is 4 = [a, bc, de, fg:h]
result when limit is 10 = [a, bc, de, fg, h]
نکته: متد split() پارامتر regex را به عنوان اولین آرگومان می گیرد. اگر نیاز به استفاده از کاراکترهای خاص مانند: \
, |
, ^
, *
, +
و … دارید، باید این کاراکترها را escape کنید. به عنوان مثال، باید برای تقسیم بر اساس علامت + باید از \\+
استفاده کنیم.
مثال 3: split() بر اساس کاراکتر +
خروجی
result = [a, e, f]
در اینجا، برای تقسیم یک رشته بر اساس +
، از \\+
استفاده کرده ایم.به این دلیل +
است که یک کاراکتر خاص است (در regex این کاراکتر معنای خاصی دارد).
دیدگاهها