2012-02-27 8 views
-8

javaの組み込み関数を使用せずにStringをlongに変換することは可能ですか?例えばStringをlongに変換する

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

がどのように使用しなくても同じタスクを実行することができるJavaの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; 
} 
関連する問題