में सबसे तेज़ सबस्ट्रिंग खोज विधि क्या है I जावा का उपयोग कर स्ट्रिंग (हैस्टैक) की सूची में सबस्ट्रिंग (सुइयों) को खोजने के लिए एक तरीका लागू करने की आवश्यकता है।जावा
अधिक विशेष रूप से, मेरे ऐप में उपयोगकर्ता प्रोफाइल की एक सूची है। अगर मैं कुछ अक्षरों को टाइप करता हूं, उदाहरण के लिए, "जा", और फिर खोज करें, तो उन सभी उपयोगकर्ताओं का नाम जिनके नाम में "ja" दिखाना चाहिए। उदाहरण के लिए, परिणाम "जैक", "जैक्सन", "जेसन", "डिजाफू" हो सकता है।
जावा में, जैसा कि मुझे पता है, स्ट्रिंग में खोज सबस्ट्रिंग देखने के लिए 3 बिल्ड-इन विधि हैं।
string.contains()
string.indexOf()
नियमित अभिव्यक्ति। क्या ऊपर प्रत्येक विधि के runtimes हैं: यह string.matches की तरह कुछ ("जा"))
मेरा प्रश्न है? यह जांचने के लिए सबसे तेज़ या सबसे कुशल या सबसे लोकप्रिय तरीका है कि स्ट्रिंग की सूची में एक दिया गया सबस्ट्रिंग है या नहीं।
मुझे पता है कि कुछ एल्गोरिदम मौजूद हैं जो वही काम करते हैं, जैसे बॉयर-मूर स्ट्रिंग सर्च एल्गोरिदम, न्यूथ-मॉरिस-प्रैट एल्गोरिदम और इसी तरह। मैं उनका उपयोग नहीं करना चाहता क्योंकि मेरे पास तारों की एक छोटी सूची है, और मुझे लगता है कि उनका उपयोग करना अभी मेरे लिए बहुत अधिक है। इसके अलावा मुझे ऐसे गैर-बिल्ड-इन एल्गोरिदम के लिए बहुत अधिक कोडिंग टाइप करना होगा। यदि आपको लगता है कि मेरे विचार सही नहीं हैं, तो कृपया मुझे सही करने के लिए स्वतंत्र महसूस करें।
क्यों आपको लगता है कि सबस्ट्रिंग खोज है एक प्रदर्शन समस्या? – chrylis
यहां अच्छा है http://stackoverflow.com/questions/5296268/fastest-way-to-check-a-string-contain-another-substring-in-javascript – Krishna
कुछ सरल प्रदर्शन सेट अप करने के लिए जटिल नहीं होना चाहिए खुद का परीक्षण करें! – FrankPl