जावा प्रलेखन StringTokenizer
के लिए बहिष्करण के बारे में कुछ भी नहीं बताता है, फिर भी मैं इस बारे में सुनता रहता हूं कि इसे बहुत पहले कैसे हटा दिया गया था। क्या इसे बहिष्कृत किया गया था क्योंकि इसमें बग/त्रुटियां थीं, या String.split()
कुल मिलाकर उपयोग करने के लिए बेहतर है?स्ट्रिंगटोकनाइज़र का बहिष्कार क्यों किया जाता है?
मैं कुछ कोड StringTokenizer
का उपयोग करता है और अगर मैं गंभीरता से यह पुनर्रचना String.split()
, उपयोग करने के लिए के बारे में या फिर प्रतिवाद विशुद्ध रूप से सुविधा की बात है और मेरे कोड सुरक्षित है चिंतित होना चाहिए मैं सोच रहा हूँ।
'StringTokenizer' एक विरासत वर्ग है (यानी एक बेहतर प्रतिस्थापन बाहर है वहां), लेकिन यह ** ** ** बहिष्कृत नहीं है। बहिष्करण केवल तब होता है जब कक्षा/विधि में कुछ गंभीर * दोष होते हैं। 'वेक्टर' के साथ एक समान स्थिति होती है: आप * लगभग हमेशा * इसे 'ऐरेलिस्ट' के साथ बदल सकते हैं, लेकिन यह "खराब" या "टूटा हुआ" नहीं है, इसलिए इसे बहिष्कृत नहीं किया गया है। –
@ जोचिम अगर टिप्पणियां स्वीकार की जा सकती हैं तो मेरे पास – donnyton
होगा स्ट्रिंगटोकनाइज़र की एक गंभीर आम-भावना समस्या है: यह लगातार डिलीमीटरों को एक डिलीमीटर के रूप में मानता है। यह एक आम या पारंपरिक भावना नहीं है। उदाहरण के लिए, सीएसवी 'ए, बी' में मतलब है कि दूसरे फ़ील्ड के साथ 3 फ़ील्ड खाली हैं। लेकिन स्ट्रिंगटोकेनाइज़र में यह डिफ़ॉल्ट रूप से इसे केवल 2 फ़ील्ड के रूप में देखता है, ',' को ',' के रूप में माना जाता है। यह पहले से ही कई प्रोग्रामर को भ्रमित करता है और उन्हें अनावश्यक डीबगिंग प्रयासों का प्रयोग करता है। *** बस इसका उपयोग न करें *** –