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