[java] Java에서 String을 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 (객체)으로 변환하려면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) -코드에서 가능하다면 숫자가 아닌 숫자로부터 보호하기 위해 적절한주의를 기울여야합니다.


답변

가장 좋은 방법은 Long.valueOf(str)그것에 의존로 Long.valueOf(long)의 캐시 된 인스턴스가 필요한 경우는 다시 사용하기 때문에 더 효율적 내부 캐시를 사용하는 Long에서 진행 -128127포함되어 있습니다.

Long지정된 long 값을 나타내는 인스턴스를 반환 합니다. 새로운 Long 인스턴스가 필요하지 않은 경우,이 메소드는 일반적으로 생성자보다 우선적으로 사용되어야합니다.이 메소드는 Long(long)자주 요청되는 값을 캐싱하여 공간 및 시간 성능을 크게 향상시킬 수 있습니다. Integer 클래스의 해당 메소드와 달리이 메소드는 특정 범위 내의 값을 캐시하는 데 필요하지 않습니다.

랩퍼 클래스의 인스턴스를 해당 기본 유형으로 변환 할 수있는 자동 압축 해제 덕분에 코드는 다음과 같습니다.

long val = Long.valueOf(str);

NumberFormatException제공된 코드 String가 signed와 일치하지 않으면 이전 코드는 여전히을 던질 수 있습니다 long.

일반적으로, 그것은 좋은 연습이 사용하는 static팩토리 메소드 valueOf(str)와 같은 래퍼 클래스를 Integer, Boolean, Long그들 중 대부분은 인스턴스를 재사용하기 때문에 … 그것은 해당 비해 메모리 풋 프린트의 기간에 가능하게 그들을 잠재적으로 더 효율적 때마다 parse메소드 나 생성자 .


Joshua Bloch가 작성한 Effective Java 에서 발췌 :Item 1

둘 다 제공하는 불변 클래스의 생성자보다 정적 팩토리 메소드 (항목 1)를 사용하여 불필요한 오브젝트 작성을 피할 수 있습니다 . 예를 들어, 정적 팩토리 메소드
Boolean.valueOf(String)는 생성자보다 거의 항상 선호됩니다 Boolean(String). 생성자는 호출 될 때마다 새로운 객체를 생성하지만 정적 팩토리 메소드는 그렇게 할 필요가 없으며 실제로는 그렇지 않습니다.


답변

문자열을 Integer로 변환하는 방법이 있습니다 .

1)

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

2)

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();

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);

끝났습니다 !!!