国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java? 教程(格式化流)

Render / 3275人閱讀

格式化流

實(shí)現(xiàn)格式化的流對(duì)象是PrintWriter(字符流類)或PrintStream(字節(jié)流類)的實(shí)例。

你可能需要的唯一PrintStream對(duì)象是System.out和System.err(有關(guān)這些對(duì)象的更多信息,請(qǐng)參閱命令行中的I/O),當(dāng)你需要?jiǎng)?chuàng)建格式化的輸出流時(shí),請(qǐng)實(shí)例化PrintWriter,而不是PrintStream

與所有字節(jié)和字符流對(duì)象一樣,PrintStreamPrintWriter的實(shí)例實(shí)現(xiàn)了一組標(biāo)準(zhǔn)的write方法,用于簡(jiǎn)單的字節(jié)和字符輸出,此外,PrintStreamPrintWriter都實(shí)現(xiàn)了將內(nèi)部數(shù)據(jù)轉(zhuǎn)換為格式化輸出的相同的一組方法,提供兩個(gè)級(jí)別的格式:

printprintln以標(biāo)準(zhǔn)方式格式化各個(gè)值。

format基于格式字符串格式化幾乎任意數(shù)字值,具有許多用于精確格式化的選項(xiàng)。

printprintln方法

使用適當(dāng)?shù)?b>toString方法轉(zhuǎn)換值后,調(diào)用printprintln會(huì)輸出單個(gè)值,我們可以在Root示例中看到這一點(diǎn):

public class Root {
    public static void main(String[] args) {
        int i = 2;
        double r = Math.sqrt(i);
        
        System.out.print("The square root of ");
        System.out.print(i);
        System.out.print(" is ");
        System.out.print(r);
        System.out.println(".");

        i = 5;
        r = Math.sqrt(i);
        System.out.println("The square root of " + i + " is " + r + ".");
    }
}

這是Root的輸出:

The square root of 2 is 1.4142135623730951.
The square root of 5 is 2.23606797749979.

ir變量格式化兩次:第一次使用print重載方法的代碼,第二次通過Java編譯器自動(dòng)生成的轉(zhuǎn)換代碼,其使用toString,你可以通過這種方式格式化任何值,但你無法控制結(jié)果。

format方法

format方法根據(jù)格式字符串格式化多個(gè)參數(shù),格式字符串由嵌入格式說明符的靜態(tài)文本組成,除格式說明符外,格式字符串輸出不變。

格式字符串支持許多功能,在本教程中,我們將介紹一些基礎(chǔ)知識(shí),有關(guān)完整說明,請(qǐng)參閱API規(guī)范中的格式字符串語法。

Root2示例使用單個(gè)format調(diào)用格式化兩個(gè)值:

public class Root2 {
    public static void main(String[] args) {
        int i = 2;
        double r = Math.sqrt(i);
        
        System.out.format("The square root of %d is %f.%n", i, r);
    }
}

這是輸出:

The square root of 2 is 1.414214.

與本例中使用的三個(gè)格式說明符一樣,所有格式說明符都以%開頭,以1或2個(gè)字符的轉(zhuǎn)換結(jié)束,該轉(zhuǎn)換指定生成的格式化輸出類型,這里使用的三個(gè)轉(zhuǎn)換是:

d將整數(shù)值格式化為十進(jìn)制值。

f將浮點(diǎn)值格式化為十進(jìn)制值。

n輸出特定于平臺(tái)的行結(jié)束符。

以下是其他一些轉(zhuǎn)換:

x將整數(shù)格式化為十六進(jìn)制值。

s將任何值格式化為字符串。

tB將整數(shù)格式化為特定于語言環(huán)境的月份名稱。

還有很多其他轉(zhuǎn)換。

%%%n外,所有格式說明符必須匹配一個(gè)參數(shù),如果不這樣做,則拋出異常。

在Java編程語言中, 轉(zhuǎn)義符始終生成換行符(u000A),除非你特別需要換行符,否則請(qǐng)勿使用 ,要獲取本地平臺(tái)的正確行分隔符,請(qǐng)使用%n

除了轉(zhuǎn)換之外,格式說明符還可以包含幾個(gè)額外元素,以進(jìn)一步自定義格式化輸出,這里有一個(gè)例子,F(xiàn)ormat,它使用了所有可能的元素類型。

public class Format {
    public static void main(String[] args) {
        System.out.format("%f, %1$+020.10f %n", Math.PI);
    }
}

這是輸出:

3.141593, +00000003.1415926536

附加元素都是可選的,下圖顯示了較長(zhǎng)的說明符如何分解為元素。

元素必須按所示順序出現(xiàn),從右側(cè)開始,可選元素是:

Precision,對(duì)于浮點(diǎn)值,這是格式化值的數(shù)學(xué)精度,對(duì)于s和其他常規(guī)轉(zhuǎn)換,這是格式化值的最大寬度,如有必要,該值將被截?cái)唷?/p>

Width,格式化值的最小寬度,如有必要,將填充該值,默認(rèn)情況下,該值使用空格填充。

Flags,指定其他格式選項(xiàng),在Format示例中,+標(biāo)志指定應(yīng)始終使用符號(hào)格式化數(shù)字,0標(biāo)志指定0是填充字符。其他標(biāo)志包括 — (在右邊填充)和(帶有特定于語言環(huán)境的千位分隔符的格式號(hào)),請(qǐng)注意,某些標(biāo)志不能與某些其他標(biāo)志一起使用或與某些轉(zhuǎn)換一起使用。

Argument Index,參數(shù)索引允許你顯式匹配指定的參數(shù),你還可以指定<以匹配與前一個(gè)說明符相同的參數(shù),因此,這個(gè)例子可以寫為:System.out.format("%f, %<+020.10f %n", Math.PI);

上一篇:掃描 下一篇:命令行I/O

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72963.html

相關(guān)文章

  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實(shí)踐沒有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...

    lifesimple 評(píng)論0 收藏0
  • Java? 教程(字符

    字符流 Java平臺(tái)使用Unicode約定存儲(chǔ)字符值,字符流I/O自動(dòng)將此內(nèi)部格式與本地字符集進(jìn)行轉(zhuǎn)換,在Western語言環(huán)境中,本地字符集通常是ASCII的8位超集。 對(duì)于大多數(shù)應(yīng)用程序,具有字符流的I/O并不比具有字節(jié)流的I/O復(fù)雜,使用流類完成的輸入和輸出會(huì)自動(dòng)轉(zhuǎn)換為本地字符集和從本地字符集轉(zhuǎn)換,使用字符流代替字節(jié)流的程序會(huì)自動(dòng)適應(yīng)本地字符集并為國際化做了準(zhǔn)備 — 所有這些都無需程序員的額...

    mochixuan 評(píng)論0 收藏0
  • Java? 教程(緩沖

    緩沖流 到目前為止,我們看到的大多數(shù)示例都使用無緩沖的I/O,這意味著每個(gè)讀取或?qū)懭胝?qǐng)求都由底層操作系統(tǒng)直接處理,這可以使程序效率低得多,因?yàn)槊總€(gè)這樣的請(qǐng)求通常觸發(fā)磁盤訪問、網(wǎng)絡(luò)活動(dòng)或一些相對(duì)昂貴的其他操作。 為了減少這種開銷,Java平臺(tái)實(shí)現(xiàn)了緩沖的I/O流,緩沖輸入流從稱為緩沖區(qū)的內(nèi)存區(qū)讀取數(shù)據(jù),僅當(dāng)緩沖區(qū)為空時(shí)才調(diào)用原生輸入API,類似地,緩沖輸出流將數(shù)據(jù)寫入緩沖區(qū),并且僅在緩沖區(qū)已滿時(shí)才調(diào)...

    gougoujiang 評(píng)論0 收藏0
  • Java? 教程(掃描)

    掃描 編程I/O通常涉及轉(zhuǎn)換人們喜歡使用的整齊格式的數(shù)據(jù),為了幫助你完成這些工作,Java平臺(tái)提供了兩個(gè)API,掃描器API將輸入分解為與數(shù)據(jù)位相關(guān)聯(lián)的單個(gè)標(biāo)記,格式化API將數(shù)據(jù)組裝成格式良好、可讀的形式。 Scanner類型的對(duì)象對(duì)于將格式化輸入分解為標(biāo)記并根據(jù)其數(shù)據(jù)類型轉(zhuǎn)換單個(gè)標(biāo)記非常有用。 將輸入分解為標(biāo)記 默認(rèn)情況下,掃描器使用空格分隔標(biāo)記(空格字符包括空格、制表符和行終止符,有關(guān)完整列...

    dantezhao 評(píng)論0 收藏0
  • Java? 教程(命令行I/O)

    命令行I/O 程序通常從命令行運(yùn)行,并在命令行環(huán)境中與用戶交互,Java平臺(tái)以兩種方式支持這種交互:通過標(biāo)準(zhǔn)流和控制臺(tái)。 標(biāo)準(zhǔn)流 標(biāo)準(zhǔn)流是許多操作系統(tǒng)的一個(gè)特性,默認(rèn)情況下,它們從鍵盤讀取輸入并將輸出寫入顯示器,它們還支持文件和程序之間的I/O,但該功能由命令行解釋器控制,而不是程序。 Java平臺(tái)支持三種標(biāo)準(zhǔn)流:標(biāo)準(zhǔn)輸入,可通過System.in訪問;標(biāo)準(zhǔn)輸出,可通過System.out訪問;和...

    jeyhan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<