MatchResult.end() মেথড
end() মেথড বর্তমান ম্যাচের (গ্রুপ ০) শেষ ইনডেক্স (exclusive) রিটার্ন করে। অর্থাৎ, ম্যাচ করা ক্যারেক্টারের পরের পজিশন।
কোড উদাহরণ
import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchResultEndExample {
public static void main(String[] args) {
// স্ট্রিংয়ের শেষে "you" ম্যাচ
String regex = "you$";
Scanner sc = new Scanner(System.in);
String input = "Hello how are you";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("ম্যাচ পাওয়া গেছে");
}
MatchResult res = matcher.toMatchResult();
int end = res.end();
System.out.println("ম্যাচের শেষ ইনডেক্স (exclusive): " + end);
}
}
আউটপুট উদাহরণ
ইনপুট টেক্সট: hello how are you
ম্যাচ পাওয়া গেছে
ম্যাচের শেষ ইনডেক্স (exclusive): 17
ব্যাখ্যা
ইনপুট: `"Hello how are you"` (লেন্থ ১৭, ইনডেক্স ০-১৬)
- `"you"` ম্যাচ: ইনডেক্স ১৪, ১৫, ১৬
- `start()` = ১৪
- `end()` = ১৭ (এক্সক্লুসিভ)
- `substring(14, 17)` = `"you"`
start() এবং end() রিলেশনশিপ
String matchedText = input.substring(res.start(), res.end());
// বা
String matchedText = res.group(); // একই ফলাফল
int length = res.end() - res.start();
সাধারণ ব্যবহার কেস
- টেক্সট এডিটরে হাইলাইটিং: `start()` থেকে `end()` পর্যন্ত হাইলাইট।
- পার্সিং: টোকেনের সঠিক লোকেশন জানার জন্য।
- ভ্যালিডেশন: নির্দিষ্ট পজিশনে প্যাটার্ন আছে কিনা চেক।
- রিপ্লেসমেন্ট: নির্দিষ্ট রেঞ্জ রিপ্লেস করার জন্য।
সারসংক্ষেপ
`MatchResult.end()` বর্তমান ম্যাচের এক্সক্লুসিভ এন্ড ইনডেক্স রিটার্ন করে। `start()` এবং `end()` একসাথে ব্যবহার করে ম্যাচ করা টেক্সটের সঠিক বাউন্ডারি জানা যায়। `Matcher` ক্লাসেও `start()` এবং `end()` মেথড রয়েছে, কিন্তু `MatchResult` ইমিউটেবল স্ন্যাপশট দিয়ে আরও নিরাপদ।