Java basit bir soru var: Nasıl dönüştürebilirsiniz String
ile elde edildiğini Long.toString()
hiç long
?
Java basit bir soru var: Nasıl dönüştürebilirsiniz String
ile elde edildiğini Long.toString()
hiç long
?
Yanıtlar:
kullanım 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
Bir dönüştürmek için Dize a Long (nesne), kullanımLong.valueOf(String s).longValue();
Bağlantıya bakın
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 (String s) - kodunuzda mümkünse sayı olmayanlara karşı korunmak için açık bir dikkat gösterilmelidir.
En iyi yaklaşım olduğunu Long.valueOf(str)
o dayanmaktadır olarak Long.valueOf(long)
önbelleğe alınmış örneklerini gerekirse o yeniden olacağından daha verimli hale dahili önbellek kullanan Long
giden -128
etmek 127
dahil.
Long
Belirtilen uzun değeri temsil eden bir örnek döndürür . Yeni bir Long örneği gerekli değilse, bu yöntem genellikle yapıcıya tercih edilirLong(long)
, çünkü bu yöntem sıkça istenen değerleri önbelleğe alarak önemli ölçüde daha iyi alan ve zaman performansı sağlar. Tamsayı sınıfındaki karşılık gelen yöntemin aksine, bu yöntemin belirli bir aralıktaki değerleri önbelleğe almak için gerekli olmadığını unutmayın.
Sayesinde otomatik kutusu açma karşılık gelen basit tür bir sargı sınıfın örneği dönüştürmek için izin kodu daha sonra olacaktır:
long val = Long.valueOf(str);
NumberFormatException
Sağlanan String
bir imzalı ile eşleşmezse , önceki kodun yine de a atabileceğini lütfen unutmayın long
.
Genel olarak konuşursak, bu iyi bir uygulama kullanmaktır static
fabrika yöntemini valueOf(str)
gibi bir sarıcı sınıfın Integer
, Boolean
, Long
çoğu örneklerini yeniden beri ... o tekabül daha bellek ayak izi vadede mümkün yapma onları potansiyel olarak daha verimli olduğu zaman parse
yöntemlerle ya da yapımcıların .
Joshua Bloch tarafından yazılan Etkili Java'dan bir alıntı :Item 1
Genellikle , her ikisini de sağlayan değişmez sınıflardaki kuruculara tercih edilen statik fabrika yöntemlerini (Öğe 1) kullanarak gereksiz nesneler oluşturmaktan kaçınabilirsiniz . Örneğin, statik fabrika yöntemi
Boolean.valueOf(String)
hemen hemen her zaman kurucuya tercih edilirBoolean(String)
. Yapıcı her çağrıldığında yeni bir nesne yaratırken, statik fabrika yönteminin hiçbir zaman bunu yapması gerekmez ve pratikte olmaz.
Long number = Long.valueOf("123")
, Long number = Long.parseLong("123")
ve Long number = Long.valueOf(Long.parseString("123")
hepsi hemen hemen aynı şeyi yapıyor sonunda. Ne yapmak konusunda kutulu ilkel sınıfların kurucuları çağırarak değil dikkatli olmasını istiyorum - o savurgan olabilir. Yani yazmaLong number = new Long(parseLong("123"))
Dizeyi Tamsayı'ya dönüştürmenin bir yolu vardır :
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();
Kısaltabiliriz:
String numberAsString = "1234";
long number = new Long(numberAsString).longValue();
Ya da sadece
long number = new Long("1234").longValue();
4) Decemal formatını kullanma:
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.");
}
Oldukça basit, kullanın
Long.valueOf(String s);
Örneğin:
String s;
long l;
Scanner sc=new Scanner(System.in);
s=sc.next();
l=Long.valueOf(s);
System.out.print(l);
Sen bittin!!!
Kotlin'e geçenler için sadece kaputun altında
string.toLong()
arayacakları kullanınLong.parseLong(string)
Harita'yı genel olarak kullanmıyorsanız, değeri Dize'ye dönüştürmeniz ve ardından Uzun'a dönüştürmeyi denemeniz gerekir. Aşağıda örnek kod
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);