私はJavaで簡単な質問を受けました:Long.toString()
によって得られたString
を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
String を Long (object)に変換するには、Long.valueOf(String s).longValue();
を使用します。
link を参照してください。
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) - コード内で可能であれば、明らかに十分な注意を払って非数値から保護する必要があります。
-128
から127
へとキャッシュされたLong
のインスタンスを必要に応じて再利用するため、内部キャッシュを使用する Long.valueOf(str)
に依存しているため、最善のアプローチは Long.valueOf(long)
です。
指定されたlong値を表す
Long
インスタンスを返します。新しいLongインスタンスが必要ない場合、このメソッドは頻繁に要求される値をキャッシュすることによってスペースと時間のパフォーマンスを大幅に向上させる可能性があるため、通常はコンストラクタLong(long)
より優先して使用します。 Integerクラスの対応するメソッドとは異なり、このメソッドは特定の範囲内の値をキャッシュするためには必要ありません。
auto-unboxing のおかげで、ラッパークラスのインスタンスを対応するプリミティブ型に変換できるので、コードは次のようになります。
long val = Long.valueOf(str);
提供されたNumberFormatException
が署名されたString
と一致しない場合、前のコードは依然としてlong
をスローする可能性があることに注意してください。
一般的に言って、static
、Integer
、Boolean
のようなラッパークラスのLong
ファクトリメソッドvalueOf(str)
を使用するのは良い習慣です。対応するparse
メソッドまたはコンストラクタ.
Joshua Blochによって書かれた Effective JavaItem 1
からの抜粋:
両方を提供する不変クラスのコンストラクタよりも静的ファクトリメソッド(項目1)を使用することで、不要なオブジェクトの作成を避けることができます。たとえば、静的ファクトリメソッド
Boolean.valueOf(String)
は、ほとんどの場合コンストラクタBoolean(String)
より優先されます。コンストラクタは呼び出されるたびに新しいオブジェクトを作成しますが、静的ファクトリメソッドは必須ではなく、実際には成功しません。
Kotlinに切り替えた人のために使用してくださいstring.toLong()
それはボンネットの下でLong.parseLong(string)
を呼び出すでしょう
文字列を整数に変換する方法がいくつかあります :
1)
long l = Long.parseLong("200");
2)
String numberAsString = "1234";
long number = Long.valueOf(numberAsString).longValue();
3)
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) 暫定フォーマットの使用:
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.");
}