2012-02-27 3 views
-8

java의 내장 함수를 사용하지 않고 String을 long으로 변환 할 수 있습니까? 예를 들어String을 Long으로 변환

:

String s = "35"; 
long ans = Long.parseLong(s); 

는 어떻게 사용하지 않고 동일한 작업을 수행 할 수 있습니다 자바의 Long.parseLong function

+12

왜 당신이 원하는 것까지? 이 숙제가 있니? 그렇다면 숙제 태그를 추가하십시오. –

+0

parseLong() ;-)의 소스 코드를보고 –

+0

예; 'parseLong()'을 재 작성할 수 있습니다. – SLaks

답변

7

네, 가능합니다. 그냥 전통적인 방식으로하십시오. String.charAt()를 사용하여 단위 위치에서 각 문자를 가져온 다음 10의 인수로 곱하고 문자열 시작 부분에 도달 할 때까지 합계를 유지합니다. 물론 특별한 경우를 돌봐야합니다.

1

예 :

public static void main(String[] args) { 
    String s = "35"; 
    long ans = parse(s); 
} 

public final static long parse(CharSequence d) { 
    int l = d.length(); 
    boolean n= d.charAt(0) == '-'; 
    long v = 0; 
    int p = n?1:0; 
    do { 
     v *= 10; 
     int i = d.charAt(p) - 48; 
     if (i < 0 | i > 9) 
      throw new NumberFormatException(d+""); 
     v += i; 
     p++; 
    } while (l > p); 
    return n?-v:v; 
} 
관련 문제