2010-02-07 15 views
8

मैं स्ट्रिंग की एक सूची है, जो सबसे अधिक संभावना है, लेकिन, numerics की एक सूची शामिल करने की गारंटी नहीं यानी,क्रमबद्ध स्ट्रिंग सूची मान

{"1", "6", "2", "21", "89"} 

क्या इतना स्ट्रिंग सूची सॉर्ट करने के लिए रास्ता है कि यह हमेशा आरोही क्रम में दिखाई देगा?

मैं स्ट्रिंग को करने से पहले संख्यात्मक पहले स्ट्रिंग को पार्स नहीं कर सकता क्योंकि स्ट्रिंग में गैर संख्यात्मक वर्ण हो सकते हैं। और मैं सूची के माध्यम से जाना नहीं चाहता हूं और प्रत्येक घटक को संख्यात्मक में चेक-कास्ट करना चाहता हूं और सॉर्टिंग करना चाहता हूं। क्या इस उद्देश्य के लिए पहले से मौजूद एक पुस्तकालय मौजूद है?

इस मामले में जहां हमारे पास मिश्रण संख्याएं और गैर-संख्यात्मक स्ट्रिंग आइटम है, संख्यात्मक तार हमेशा गैर-संख्यात्मक पर प्राथमिकता लेते हैं।

+1

जो वाक्यांश आप खोज रहे हैं वह "प्राकृतिक क्रम क्रम" है। – Ken

उत्तर

8

यह थोड़ा अलग से पहले पूछा गया है, लेकिन वही उत्तर अभी भी लागू होता है, क्योंकि उनके पास एक ही साइट पर सी # कार्यान्वयन है।

तो सवाल: Sort on a string that may contain a number

उत्तर ScArcher2 द्वारा प्रदान की: The Alphanum Algorithm

0

यदि यह सी # है, तो यह Int32.TryParse() है।

यदि यह सी ++ है, तो std :: string :: find_first_not_of एक सभ्य शर्त है। इसे 0 से 9 अंकों के साथ एसिसी वर्ण युक्त एक स्ट्रिंग पास करें (साथ ही शून्य और प्लस संकेत?) और यदि यह -1 देता है तो यह एक पूर्णांक है।

+2

नहीं, वह इस तरह की सूचियों को क्रमबद्ध करने में सक्षम होना चाहता है: {a1, a10, a11, a2, a3} प्राकृतिक तरीके से: {a1, a2, a3, a10, a11}। TryParse स्पष्ट रूप से काम नहीं करेगा। – Steven

1

आप तत्वों सॉर्ट करने के लिए, Windows XP एक्सप्लोरर जैसे फाइलों के साथ करता है चाहता हूँ। इसे कैसे करें इस पर this article देखें।

संबंधित मुद्दे