मैं जावा में एक सरल सवाल है: मैं एक कैसे परिवर्तित कर सकते हैं String
कि प्राप्त किया गया था द्वारा Long.toString()
करने के लिए long
?
मैं जावा में एक सरल सवाल है: मैं एक कैसे परिवर्तित कर सकते हैं String
कि प्राप्त किया गया था द्वारा Long.toString()
करने के लिए long
?
जवाबों:
उपयोग 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
एक स्ट्रिंग को लॉन्ग (ऑब्जेक्ट) में बदलने के लिए , उपयोग करेंLong.valueOf(String s).longValue();
लिंक देखें
java.lang.Long
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());
}
}
}
Long.valueOf (स्ट्रिंग s) - यदि आपके कोड में संभव है तो गैर-संख्या से बचाव के लिए स्पष्ट रूप से उचित देखभाल की जानी चाहिए।
सबसे अच्छा तरीका Long.valueOf(str)
यह है कि यह निर्भर करता है, Long.valueOf(long)
जिस पर एक आंतरिक कैश का उपयोग करता है जो इसे अधिक कुशल बनाता है क्योंकि यह पुन: उपयोग करेगा यदि इसमें शामिल Long
होने के -128
लिए कैश्ड उदाहरणों की आवश्यकता होगी 127
।
Long
निर्दिष्ट लंबी मान का प्रतिनिधित्व करने वाला एक उदाहरण देता है । यदि एक नए लंबे उदाहरण की आवश्यकता नहीं है, तो इस विधि का उपयोग आमतौर पर निर्माणकर्ता के लिए प्राथमिकता में किया जाना चाहिएLong(long)
, क्योंकि इस पद्धति से अक्सर अनुरोधित मूल्यों को कैच करके बेहतर स्थान और समय के प्रदर्शन की संभावना होती है। ध्यान दें कि इंटेगर वर्ग में संबंधित विधि के विपरीत, इस पद्धति को किसी विशेष श्रेणी के मानों को कैश करने की आवश्यकता नहीं है।
रैपर क्लास के इंस्टेंस को अपने संबंधित आदिम प्रकार में बदलने की अनुमति देने के लिए ऑटो-अनबॉक्सिंग के लिए धन्यवाद , कोड तब होगा:
long val = Long.valueOf(str);
कृपया ध्यान दें कि पिछला कोड अभी भी फेंक सकता है NumberFormatException
यदि प्रदान String
किया गया हस्ताक्षर के साथ मेल नहीं खाता है long
।
सामान्य शब्दों में, इसका इस्तेमाल करने के लिए एक अच्छा अभ्यास है static
कारखाने विधि valueOf(str)
की तरह एक आवरण वर्ग के Integer
, Boolean
, Long
, ... के बाद से उनमें से ज्यादातर मामलों का पुन: उपयोग जब भी यह संभव बनाने के लिए उन्हें संभवत: अधिक इसी से स्मृति पदचिह्न की अवधि में कुशल है parse
तरीकों या कंस्ट्रक्टर्स ।
जोशुआ बलोच द्वारा लिखे गए प्रभावी जावा से उद्धरण :Item 1
आप अक्सर दोनों प्रदान करने वाले अपरिवर्तनीय वर्गों पर निर्माणकर्ताओं को वरीयता में स्थिर कारखाना विधियों (आइटम 1) का उपयोग करके अनावश्यक वस्तुओं को बनाने से बच सकते हैं । उदाहरण के लिए, स्थिर कारखाना विधि
Boolean.valueOf(String)
लगभग हमेशा निर्माणकर्ता के लिए बेहतर होती हैBoolean(String)
। कंस्ट्रक्टर हर बार जब भी बुलाया जाता है, तब एक नया ऑब्जेक्ट बनाता है, जबकि स्थिर फ़ैक्टरी विधि को ऐसा करने की आवश्यकता नहीं होती है और यह अभ्यास में नहीं होगा।
Long number = Long.valueOf("123")
, Long number = Long.parseLong("123")
और Long number = Long.valueOf(Long.parseString("123")
सभी बहुत ही एक ही काम कर रहे हैं। आप क्या करते हैं सावधान बारे में बॉक्सिंग आदिम वर्गों के कंस्ट्रक्टर्स बुला नहीं है होना चाहता हूँ - कि बेकार हो सकता है। इसलिए नहीं लिखेंLong number = new Long(parseLong("123"))
स्ट्रिंग को पूर्णांक में बदलने के कुछ तरीके हैं :
1)
long l = Long.parseLong("200");
2)
String numberAsString = "1234";
long number = Long.valueOf(numberAsString).longValue();
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.");
}
यह काफी सरल है, उपयोग करें
Long.valueOf(String s);
उदाहरण के लिए:
String s;
long l;
Scanner sc=new Scanner(System.in);
s=sc.next();
l=Long.valueOf(s);
System.out.print(l);
हो गया!!!
कोटलिन के लिए स्विच करने वालों के लिए बस का उपयोग
string.toLong()
करें Long.parseLong(string)
जो हुड के नीचे कॉल करेगा
यदि आप सामान्य के साथ मैप का उपयोग कर रहे हैं, तो आपको मूल्य को स्ट्रिंग में बदलने की आवश्यकता है और फिर लॉन्ग में बदलने की कोशिश करें। नीचे नमूना कोड है
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);