আসুন বাদ দিয়ে শুরু করা যাক StringTokenizer
। এটি পুরানো হয়ে আসছে এবং নিয়মিত প্রকাশগুলিও সমর্থন করে না। এর নথিতে বলা হয়েছে:
StringTokenizer
এটি একটি উত্তরাধিকার শ্রেণি যা সামঞ্জস্যতার কারণে ধরে রাখা হয় যদিও এর ব্যবহারটি নতুন কোডে নিরুৎসাহিত করা হয়েছে। এটি প্রস্তাবিত হয় যে এই কার্যকারিতা সন্ধানকারী যে কেউ তার পরিবর্তে split
পদ্ধতি String
বা java.util.regex
প্যাকেজটি ব্যবহার করুন।
সুতরাং আসুন এখনই এটি ফেলে দিন। যে পাতা split()
এবং Scanner
। তাদের মধ্যে পার্থক্য কী?
একটি জিনিস জন্য, split()
কেবল একটি অ্যারে ফিরিয়ে দেয়, যা পূর্বাঞ্চ লুপ ব্যবহার করা সহজ করে তোলে:
for (String token : input.split("\\s+") { ... }
Scanner
স্রোতের মতো আরও নির্মিত:
while (myScanner.hasNext()) {
String token = myScanner.next();
...
}
অথবা
while (myScanner.hasNextDouble()) {
double token = myScanner.nextDouble();
...
}
(এটির পরিবর্তে একটি বৃহত এপিআই রয়েছে , সুতরাং এটি সর্বদা এ জাতীয় সাধারণ জিনিসগুলির মধ্যেই সীমাবদ্ধ মনে করবেন না))
এই স্ট্রিম-স্টাইলের ইন্টারফেসটি সহজ পাঠ্য ফাইলগুলি বা কনসোল ইনপুট পার্সিংয়ের জন্য কার্যকর হতে পারে, যখন বিশ্লেষণ শুরু করার আগে আপনার কাছে সমস্ত ইনপুট থাকে না (বা পেতে পারেন না)।
ব্যক্তিগতভাবে, আমি কেবলমাত্র Scanner
স্কুল প্রকল্পগুলির জন্যই মনে করতে পারি যখন আমি কমান্ড লাইন থেকে ব্যবহারকারী ইনপুট পেতে পারি। এটি এই ধরণের অপারেশনটিকে সহজ করে তোলে। তবে আমার যদি এমন একটি থাকে String
যা আমি বিচ্ছেদ করতে চাই, এটি প্রায় কোনও মস্তিষ্কের সাথে যেতে হবে split()
।