數(shù)字
本節(jié)首先討論java.lang包中的Number類,它的子類,以及使用這些類的實(shí)例化而不是原始數(shù)字類型的情況。
本節(jié)還介紹了PrintStream和DecimalFormat類,它們提供了編寫格式化數(shù)字輸出的方法。
最后,討論了java.lang中的Math類,它包含數(shù)學(xué)函數(shù),以補(bǔ)充語(yǔ)言中內(nèi)置的運(yùn)算符,該類具有三角函數(shù),指數(shù)函數(shù)等方法。
數(shù)字類使用數(shù)字時(shí),大多數(shù)時(shí)候在代碼中使用基元類型,例如:
int i = 500; float gpa = 3.65f; byte mask = 0xff;
但是,有理由使用對(duì)象代替基元,Java平臺(tái)為每個(gè)基元數(shù)據(jù)類型提供包裝類,這些類將基元“包裝”在對(duì)象中。通常,包裝由編譯器完成 — 如果在需要對(duì)象的地方使用基元,編譯器會(huì)在包裝器類中為你封裝基元,類似地,如果在期望基元時(shí)使用數(shù)字對(duì)象,則編譯器會(huì)為你拆箱對(duì)象,有關(guān)更多信息,請(qǐng)參閱自動(dòng)裝箱和拆箱。
所有數(shù)字包裝類都是抽象類Number的子類:
注意:這里沒(méi)有討論其他四個(gè)Number的子類,BigDecimal和BigInteger用于高精度計(jì)算,AtomicInteger和AtomicLong用于多線程應(yīng)用程序。
有三個(gè)原因可以使用Number對(duì)象而不是基元:
作為期望對(duì)象的方法的參數(shù)(通常在操作數(shù)字集合時(shí)使用)。
使用由類定義的常量(如MIN_VALUE和MAX_VALUE),它們提供數(shù)據(jù)類型的上限和下限。
使用類方法將值轉(zhuǎn)換為其他基本類型或從其他基本類型轉(zhuǎn)換值,轉(zhuǎn)換為字符串和從字符串轉(zhuǎn)換,以及在數(shù)字系統(tǒng)之間進(jìn)行轉(zhuǎn)換(十進(jìn)制、八進(jìn)制、十六進(jìn)制、二進(jìn)制)。
下表列出了Number類的所有子類實(shí)現(xiàn)的實(shí)例方法。
方法 | 描述 |
---|---|
byte byteValue() short shortValue() int intValue() long longValue() float floatValue() double doubleValue() |
將此Number對(duì)象的值轉(zhuǎn)換為返回的基本數(shù)據(jù)類型。 |
int compareTo(Byte anotherByte) int compareTo(Double anotherDouble) int compareTo(Float anotherFloat) int compareTo(Integer anotherInteger) int compareTo(Long anotherLong) int compareTo(Short anotherShort) |
將此Number對(duì)象與參數(shù)進(jìn)行比較。 |
boolean equals(Object obj) | 確定此數(shù)字對(duì)象是否等于參數(shù)。 如果參數(shù)不為null并且是相同類型且具有相同數(shù)值的對(duì)象,則方法返回true。 Java API文檔中描述了Double和Float對(duì)象的一些額外要求。 |
每個(gè)Number類都包含其他方法,這些方法可用于數(shù)字與字符串之間的轉(zhuǎn)換和用于數(shù)字系統(tǒng)之間的轉(zhuǎn)換,下表列出了Integer類中的這些方法,其他Number子類的方法類似:
方法 | 描述 |
---|---|
static Integer decode(String s) | 將字符串解碼為整數(shù),可以接受十進(jìn)制、八進(jìn)制或十六進(jìn)制數(shù)字的字符串表示作為輸入。 |
static int parseInt(String s) | 返回一個(gè)整數(shù)(僅十進(jìn)制) |
static int parseInt(String s, int radix) | 返回一個(gè)整數(shù),給定十進(jìn)制、二進(jìn)制、八進(jìn)制或十六進(jìn)制(radix分別等于10、2、8或16)數(shù)字的字符串表示作為輸入。 |
String toString() | 返回表示此Integer值的String對(duì)象。 |
static String toString(int i) | 返回表示指定整數(shù)的String對(duì)象。 |
static Integer valueOf(int i) | 返回包含指定基元值的Integer對(duì)象。 |
static Integer valueOf(String s) | 返回一個(gè)包含指定字符串表示形式值的Integer對(duì)象。 |
static Integer valueOf(String s, int radix) | 返回一個(gè)Integer對(duì)象,該對(duì)象包含指定字符串表示形式的整數(shù)值,并使用radix值進(jìn)行解析。 例如,如果s = "333"且radix = 8,則該方法返回等于八進(jìn)制數(shù)333的十進(jìn)制整數(shù)。 |
你可以使用其中一個(gè)包裝類 — Byte、Double、Float、Integer、Long或Short — 來(lái)在對(duì)象中包裝許多基本類型,Java編譯器會(huì)在必要時(shí)自動(dòng)為你包裝(裝箱)基元,并在必要時(shí)再將它們拆箱。
Number類包括常量和有用的類方法,MIN_VALUE和MAX_VALUE常量包含該類型對(duì)象可包含的最小值和最大值,byteValue、shortValue和類似方法將一種數(shù)字類型轉(zhuǎn)換為另一種數(shù)字類型,valueOf方法將字符串轉(zhuǎn)換為數(shù)字,toString方法將數(shù)字轉(zhuǎn)換為字符串。
要格式化包含輸出數(shù)字的字符串,可以使用PrintStream類中的printf()或format()方法,或者,你可以使用NumberFormat類使用模式自定義數(shù)字格式。
Math類包含用于執(zhí)行數(shù)學(xué)函數(shù)的各種類方法,包括指數(shù)、對(duì)數(shù)和三角函數(shù)方法,Math還包括基本算術(shù)函數(shù),例如絕對(duì)值和舍入,以及用于生成隨機(jī)數(shù)的方法random()。
上一篇:抽象方法和類 下一篇:格式化數(shù)字打印輸出文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72898.html
Java? 教程 Java教程是為JDK 8編寫的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...
在數(shù)字和字符串之間轉(zhuǎn)換 將字符串轉(zhuǎn)換為數(shù)字 通常,程序以字符串對(duì)象中的數(shù)字?jǐn)?shù)據(jù)結(jié)束 — 例如,用戶輸入的值。 包裝原始數(shù)字類型(Byte、Integer、Double、Float、Long和Short)的Number子類每個(gè)都提供一個(gè)名為valueOf的類方法,該方法將字符串轉(zhuǎn)換為該類型的對(duì)象。下面是一個(gè)示例ValueOfDemo,它從命令行獲取兩個(gè)字符串,將它們轉(zhuǎn)換為數(shù)字,并對(duì)值執(zhí)行算術(shù)運(yùn)算: ...
格式化數(shù)字打印輸出 之前你已經(jīng)看到使用print和println方法將字符串打印到標(biāo)準(zhǔn)輸出(System.out),由于所有數(shù)字都可以轉(zhuǎn)換為字符串(你將在本課后面看到),你可以使用這些方法打印出任意的字符串和數(shù)字混合,但是,Java編程語(yǔ)言還有其他方法,可以在包含數(shù)字時(shí)對(duì)打印輸出進(jìn)行更多控制。 printf和format方法 java.io包中包含一個(gè)PrintStream類,它有兩種格式化方法可...
變量 正如你在上一課中所了解到的,對(duì)象將其狀態(tài)存儲(chǔ)在字段中。 int cadence = 0; int speed = 0; int gear = 1; 什么是對(duì)象?討論向你介紹了字段,但你可能還有一些問(wèn)題,例如:命名字段的規(guī)則和約定是什么?除了int之外,還有哪些其他數(shù)據(jù)類型?在聲明字段時(shí)是否必須初始化字段?如果未明確初始化字段,是否為字段分配了默認(rèn)值?我們將在本課中探討這些問(wèn)題的答案,但在我們...
字符串 在Java編程中廣泛使用的字符串是一系列字符,在Java編程語(yǔ)言中,字符串是對(duì)象。 Java平臺(tái)提供String類來(lái)創(chuàng)建和操作字符串。 創(chuàng)建字符串 創(chuàng)建字符串的最直接方法是編寫: String greeting = Hello world!; 在這種情況下,Hello world!是一個(gè)字符串文字 — 代碼中的一系列字符,用雙引號(hào)括起來(lái),每當(dāng)它在代碼中遇到字符串文字時(shí),編譯器就會(huì)創(chuàng)建一個(gè)帶...
閱讀 1428·2021-09-10 10:51
閱讀 2862·2019-08-30 15:54
閱讀 3401·2019-08-29 17:11
閱讀 959·2019-08-29 16:44
閱讀 1423·2019-08-29 13:47
閱讀 1112·2019-08-29 13:47
閱讀 1514·2019-08-29 12:23
閱讀 1075·2019-08-28 18:18