Java에서 String을 long으로 변환하는 방법
자바어로 간단한 질문이 있습니다.변환 방법String
에 의해 얻어진Long.toString()
로.long
?
사용
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();
'링크'
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) - 코드 내에서 가능한 경우 숫자 이외의 번호로부터 보호하기 위해 충분한 주의를 기울여야 합니다.
변환에는 몇 가지 방법이 있습니다.String
로.long
:
1)
long l = Long.parseLong("200");
String numberAsString = "1234";
long number = Long.valueOf(numberAsString).longValue();
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();
- 10진 형식 사용:
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
로부터의-128
로.127
포함된.
a를 반환한다.
Long
지정된 긴 값을 나타내는 인스턴스.새로운 Long 인스턴스가 필요하지 않은 경우 일반적으로 이 메서드를 컨스트럭터보다 우선적으로 사용해야 합니다.Long(long)
이 방법은 자주 요청하는 값을 캐시함으로써 공간 및 시간 성능이 크게 향상될 가능성이 높기 때문입니다.Integer 클래스의 대응하는 메서드와 달리 이 메서드는 특정 범위 내의 값을 캐시하기 위해 필요하지 않습니다.
래퍼 클래스의 인스턴스를 대응하는 프리미티브 타입으로 변환할 수 있는 자동 언박스로 인해 코드는 다음과 같습니다.
long val = Long.valueOf(str);
이전 코드에서는 여전히 다음 코드가 느려질 수 있습니다.NumberFormatException
이 있는 경우String
서명된 것과 일치하지 않습니다.long
.
일반적으로는, 을 사용하는 것이 좋습니다.static
공장법valueOf(str)
와 같은 래퍼 클래스의Integer
,Boolean
,Long
, ...대부분의 인스턴스는 가능한 한 재사용하기 때문에 메모리 사용률 면에서 대응하는 것보다 효율적일 수 있습니다.parse
메서드 또는 컨스트럭터.
유효한 Java에서 발췌 Item 1
Joshua Bloch 지음:
대부분의 경우 둘 다 제공하는 불변 클래스의 컨스트럭터보다 스태틱팩토리 메서드(항목 1)를 사용하여 불필요한 오브젝트를 작성하는 것을 피할 수 있습니다.예를 들어 스태틱팩토리 방식
Boolean.valueOf(String)
거의 항상 컨스트럭터보다 선호됩니다.Boolean(String)
컨스트럭터는 호출될 때마다 새 개체를 만드는 반면 정적 팩토리 메서드는 필요하지 않으며 실제로 필요하지 않습니다.
매우 간단합니다.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)
먼저 Long으로 변환되는 문자열이 null이 아니며 회피하기 위해 정말 긴 문자열인지 확인해야 합니다.그러기 위해서는 다음과 같은 새로운 방법을 작성하는 것이 가장 좋습니다.
public static Long convertStringToLong(String str) {
try {
return Long.valueOf(str);
} catch (NumberFormatException e) {
return null;
}
}
Map을 out generic과 함께 사용하는 경우 값을 String으로 변환한 후 Long으로 변환해야 합니다.다음은 샘플 코드입니다.
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);
언급URL : https://stackoverflow.com/questions/7693324/how-to-convert-string-to-long-in-java
'source' 카테고리의 다른 글
컴포넌트 VUE 2(웹팩)에 외부 js 파일을 로드하는 방법 (0) | 2022.08.30 |
---|---|
공백 문자가 있는 입력에서 문자열을 읽으시겠습니까? (0) | 2022.08.30 |
입력 필드를 바인딩하고 vuex 상태를 동시에 업데이트하는 방법 (0) | 2022.08.30 |
서비스 워커 이벤트가 호출되고 있음을 App.vue에 알리다 (0) | 2022.08.30 |
C++에 typedef 키워드와 동등한 Java 또는 방법론이 있습니까? (0) | 2022.08.30 |