2011-10-07 16 views

उत्तर

552

उपयोग Long.parseLong()

Long.parseLong("0", 10)  // returns 0L 
Long.parseLong("473", 10)  // returns 473L 
Long.parseLong("-0", 10)  // returns 0L 
Long.parseLong("-FF", 16)  // returns -255L 
Long.parseLong("1100110", 2) // returns 102L 
Long.parseLong("99", 8)  // throws a NumberFormatException 
Long.parseLong("Hazelnut", 10) // throws a NumberFormatException 
Long.parseLong("Hazelnut", 36) // returns 1356099454469L 
Long.parseLong("999")   // returns 999L 
+6

http://www.coderanch.com/t/394194/java/java/parseLong-String-int-radix-radix – Jay

+0

"लंच/रात्रिभोज" के बारे में क्या? –

+1

दूसरा तर्क रेडिक्स है। आपका स्वागत है। – Brikowski

132

एक लांग (वस्तु) के लिए एक स्ट्रिंग बदलने के लिए, का उपयोग Long.valueOf(String s).longValue();

देखें link

+1

में लंबे स्ट्रिंग में कनवर्ट करने के लिए [5 उदाहरण के साथ तरीके] (http://javadevnotes.com/java-string-to-long-examples) यही वह नहीं है जो ओपी पूछ रहा है। –

+7

मैं यह देखने में असफल रहा कि यह क्यों कम किया गया था। यह गलत नहीं है। –

+0

मुझे लगता है कि मूल्य एक स्ट्रिंग देता है ... – Belgi

24
public class StringToLong { 

    public static void main (String[] args) { 

     // String s = "fred"; // do this if you want an exception 

     String s = "100"; 

     try { 
     long l = Long.parseLong(s); 
     System.out.println("long l = " + l); 
     } catch (NumberFormatException nfe) { 
     System.out.println("NumberFormatException: " + nfe.getMessage()); 
     } 

    } 
} 
+0

यह ठीक काम नहीं कर रहा है – Erum

10

Long.valueOf(String s) - स्पष्ट रूप से गैर-संख्याओं के विरुद्ध सुरक्षा के लिए सावधानी बरतनी चाहिए यदि यह आपके कोड में संभव है।

+3

नोट: यह विधि 'लंबी' नहीं है लेकिन 'लांग' ऑब्जेक्ट –

0

यदि आप जेनेरिक के साथ मानचित्र का उपयोग कर रहे हैं, तो आपको मान को स्ट्रिंग में परिवर्तित करने की आवश्यकता है और फिर लंबे समय में कनवर्ट करने का प्रयास करें। नीचे नमूना कोड है

Map map = new HashMap(); 

    map.put("name", "John"); 
    map.put("time", "9648512236521"); 
    map.put("age", "25"); 

    long time = Long.valueOf((String)map.get("time")).longValue() ; 
    int age = Integer.valueOf((String) map.get("aget")).intValue(); 
    System.out.println(time); 
    System.out.println(age); 
1

सबसे अच्छा तरीका Long.valueOf(str) है, क्योंकि यह Long.valueOf(long) जो इसे अधिक कुशल अगर -128 से 127 शामिल करने के लिए जा Long की कैश्ड उदाहरणों की जरूरत है, क्योंकि यह पुन: उपयोग होगा बनाने के लिए एक आंतरिक कैश का उपयोग करता पर निर्भर करता है।

Long आवृत्ति निर्दिष्ट लंबे मान का प्रतिनिधित्व करता है। यदि नया लॉन्ग इंस्टेंस आवश्यक नहीं है, तो यह विधि आमतौर पर को कन्स्ट्रक्टर Long(long) की प्राथमिकता में उपयोग की जानी चाहिए, क्योंकि यह विधि द्वारा अक्सर बेहतर मूल्य और समय प्रदर्शन को संभवतः बेहतर मूल्यों को कैशिंग करने की संभावना है। ध्यान दें कि इंटीजर क्लास में संबंधित विधि के विपरीत, किसी विधि को कैश करने के लिए इस विधि को आवश्यक नहीं है।

auto-unboxing अपनी इसी आदिम प्रकार में एक आवरण वर्ग के उदाहरण कन्वर्ट करने के लिए अनुमति देता है के लिए धन्यवाद, कोड तो होगा:

long val = Long.valueOf(str); 

कृपया ध्यान दें कि पिछले कोड को अभी भी एक NumberFormatException फेंक कर सकते हैं अगर प्रदान की String हस्ताक्षरित long से मेल नहीं खाता है।

सामान्य शब्दों में, यह Integer, Boolean, Long की तरह एक आवरण वर्ग के static कारखाने विधि valueOf(str) उपयोग करने के लिए एक अच्छा अभ्यास है, ... के बाद से उनमें से ज्यादातर मामलों का पुन: उपयोग जब भी यह उन्हें संभावित रूप से अधिक समय में कुशल बनाने के लिए संभव है संबंधित parse विधियों या रचनाकारों की तुलना में स्मृति पदचिह्न का।


Effective JavaItem 1यहोशू बलोच द्वारा लिखित से अंश:

आप अक्सर अपरिवर्तनीय पर कंस्ट्रक्टर्स वरीयता में स्थिर कारखाने तरीकों का उपयोग कर (मद 1) द्वारा अनावश्यक वस्तुओं बनाने से बच सकते हैं कक्षाएं जो दोनों प्रदान करती हैं। उदाहरण के लिए, स्थैतिक फैक्ट्री विधि Boolean.valueOf(String) कन्स्ट्रक्टर Boolean(String) के लिए लगभग हमेशा बेहतर है। कन्स्ट्रक्टर प्रत्येक बार इसे कॉल करने पर एक नई ऑब्जेक्ट बनाता है, जबकि स्थैतिक फैक्ट्री विधि कभी भी ऐसा करने की आवश्यकता नहीं होती है और अभ्यास में नहीं होगी।

+0

यह ध्यान देने योग्य है कि लंबे समय तक - लंबे, लंबे समय के मामले में ऑटो-अनबॉक्सिंग कंपाइलर द्वारा "विलुप्त" होती है।valueOf (primitiveLong)। तो 'लंबी संख्या = Long.valueOf ("123") ',' लंबी संख्या = Long.parseLong (" 123 ")' और 'लंबी संख्या = Long.valueOf (Long.parseString (" 123 ") 'सब खत्म हो रहा है बहुत कुछ वही बात। आप जो * करना चाहते हैं, उसके बारे में सावधान रहना चाहते हैं, वह बॉक्सिंग आदिम वर्गों के रचनाकारों को नहीं बुला रहा है - जो अपमानजनक हो सकता है। इसलिए 'लंबी संख्या = नया लंबा (पार्सलॉन्ग ("123")) ' –

0

जो लोग Kotlin में स्विच करने के लिए सिर्फ
string.toLong()
कि हुड

0

किसी तरह स्ट्रिंग कन्वर्ट करने के लिए कर रहे हैं के तहत Long.parseLong(string) फोन करेगा पूर्णांक तक का उपयोग करें:

1)

long l = Long.parseLong("200"); 

2)

String numberAsString = "1234"; 
long number = Long.valueOf(numberAsString); 

3)

String numberAsString = "1234"; 
    Long longObject = new Long(numberAsString); 
    long number = longObject.longValue(); 

हम को छोटा कर सकते हैं:

String numberAsString = "1234"; 
long number = new Long(numberAsString).longValue(); 

या बस

long number = new Long("1234").longValue(); 

4) का उपयोग Decemal प्रारूप:

String numberAsString = "1234"; 
     DecimalFormat decimalFormat = new DecimalFormat("#"); 
    try { 
     long number = decimalFormat.parse(numberAsString).longValue(); 
     System.out.println("The number is: " + number); 
    } catch (ParseException e) { 
    System.out.println(numberAsString + " is not a valid number."); 
    } 
संबंधित मुद्दे