source

Java에서 String을 long으로 변환하는 방법

gigabyte 2022. 8. 30. 22:22
반응형

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();
  1. 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 1Joshua 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

반응형