一般,程序以字符串對象中的數字數據結束 — 例如,用戶輸入的值。html
包裝原始數字類型(Byte、Integer、Double、Float、Long和Short)的Number
子類每一個都提供一個名爲valueOf
的類方法,該方法將字符串轉換爲該類型的對象。下面是一個示例ValueOfDemo,它從命令行獲取兩個字符串,將它們轉換爲數字,並對值執行算術運算:java
public class ValueOfDemo { public static void main(String[] args) { // this program requires two // arguments on the command line if (args.length == 2) { // convert strings to numbers float a = (Float.valueOf(args[0])).floatValue(); float b = (Float.valueOf(args[1])).floatValue(); // do some arithmetic System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a * b)); System.out.println("a / b = " + (a / b)); System.out.println("a % b = " + (a % b)); } else { System.out.println("This program " + "requires two command-line arguments."); } } }
如下是使用4.5
和87.2
做爲命令行參數時程序的輸出:git
a + b = 91.7 a - b = -82.7 a * b = 392.4 a / b = 0.0516055 a % b = 4.5
包裝原始數字類型的每一個Number
子類還提供了一個parseXXXX()
方法(例如,parseFloat()
),可用於將字符串轉換爲原始數字,因爲返回基本類型而不是對象,所以parseFloat()
方法比valueOf()
方法更直接,例如,在ValueOfDemo程序中,咱們能夠使用:github
float a = Float.parseFloat(args[0]); float b = Float.parseFloat(args[1]);
有時你須要將數字轉換爲字符串,由於你須要對其字符串形式的值進行操做,有幾種簡單的方法能夠將數字轉換爲字符串:segmentfault
int i; // Concatenate "i" with an empty string; conversion is handled for you. String s1 = "" + i;
或:api
// The valueOf class method. String s2 = String.valueOf(i);
每一個Number
子類都包含一個類方法toString()
,它將其基本類型轉換爲字符串,例如:oracle
int i; double d; String s3 = Integer.toString(i); String s4 = Double.toString(d);
ToStringDemo示例使用toString
方法將數字轉換爲字符串,而後程序使用一些字符串方法來計算小數點先後的位數:ui
public class ToStringDemo { public static void main(String[] args) { double d = 858.48; String s = Double.toString(d); int dot = s.indexOf('.'); System.out.println(dot + " digits " + "before decimal point."); System.out.println( (s.length() - dot - 1) + " digits after decimal point."); } }
該程序的輸出是:this
3 digits before decimal point. 2 digits after decimal point.