文字列を数値に変換する

文字列を数値に変換する #

数字の文字列を数値に変換する方法を述べる。
ちなみに、逆の数値を文字列にする方法もある。

クラスはここではMain.javaとする

class Main{
    public static void main(String args[]){
      String s = "1";
      
      int i = Integer.parseInt(s);

      System.out.println(i) // 1
    }
}

Javaでは各数値型のラッパークラスに parsexxx(String s) というメソッドがあり、これにより文字列を数値リテラルに変換してくれる。
int型の場合はintのラッパークラスIntegerにparseIntというメソッドがあり、そのメソッドに文字列を入力すると、対応する数値に変換してくれる。上記例では"1"という文字列をparseIntに入力すると、int型(数値リテラル)の1が返る。
数値リテラルに変換できないような文字列を入力するとNumberFormatExceptionという例外エラーが発生する。

他の数値型に変換したいときは、それぞれ対応するラッパークラスにparsexxメソッドがあるのでそれを活用する。

class Main{
    public static void main(String args[]){
      String s = "1";
      
      long l = Long.parseLong(s); //"1"をLong型に変換
      byte b = Byte.parseByte(s); //"1"をByte型に変換

      double d = Double.parseDouble(s); //"1"をDouble型に変換
      float  f = Float.parseFloat(s);   //"1"をFloat型に変換
    }
}

Pythonで数値の文字列を数値リテラルに変換したい時は組み込み関数の**int()float()**を利用する。

s = "1"
print(s) #'1'

s = int(s)
print(s) # 1

s = float(s)
print(s) # 1.0

数値リテラルに変換できないような文字列を入力したときは、例外ValueErrorを返す。

>>>s = "+"
>>>s = int(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '+'

Javascriptで数値の文字列を数値型に変換したい時は、

関数 Number()parseInt()parseFloat() を利用する。

var s = "1"
console.log(s); 

//文字列->数値に変換
console.log(Number(s));
console.log(parseInt(s));
console.log(parseFloat(s));

実行結果

1
1
1
1

(ログだと分からんか・・)