2013-11-25 13 views
5

सरल प्रश्न लेकिन मुझे परेशानी हो रही है। मेरे पास एक स्ट्रिंग इनपुट है जो इस प्रारूप में 12:43 है। (MM: SS)।
मैं इस स्ट्रिंग को int (सेकेंड) में बदलने की कोशिश कर रहा हूं। एकमात्र भाग मुझे नहीं पता कि कैसे करना है प्राप्त किए बिना 12 और 43 कैसे प्राप्त करें। क्योंकि इसमें स्ट्रिंग में ":" है, मैं सामान्य Parse.parseInt(string); नहीं कर सकता।अक्षरों को रखते हुए int को स्ट्रिंग

उत्तर

9
  • split स्ट्रिंग :
  • जिसके परिणामस्वरूप सरणी में प्रत्येक int के लिए के अनुसार, लागू parseInt
+0

मैं देख रहा हूं कि आपकी क्या कह रही है, लेकिन मुझे नियमित अभिव्यक्तियों को बिल्कुल नहीं पता है। क्या आप एक उदाहरण प्रदान कर सकते हैं? –

+3

इस विशिष्ट उदाहरण में, विशेष रेगेक्स की आवश्यकता नहीं है। आप बस 'स्ट्रिंग [] arr = myStr.split (":") कर सकते हैं; ' – Maroun

+0

बहुत बढ़िया। तो 'स्ट्रिंग [0] 'मिनट होगा, फिर स्ट्रिंग [1]' सेकंड होगा? –

5

आप क्या कर सकते हैं

String s = "12:43"; 
int secs = (s.charAt(0)-'0')*600 + (s.charAt(1) - '0') * 60 
      + (s.charAt(3)-'0')*10 + s.charAt(4)-'0'; 

या

int secs = s.charAt(0)*600+s.charAt(1)*60+s.charAt(3)*10+s.charAt(4)-'0'*671; 
+1

+1: मैं '-0 '* 671' पर लोल गया। यह शायद पार्सिंग का सबसे तेज़ तरीका है जो संभव है। –

+0

यकीन नहीं है। क्या '0' * 671' निरंतर अनुकूलित हो जाएगा? –

+0

@ डेविड वालस मैं निश्चित रूप से ऐसा सोचूंगा कि – Cruncher

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