Java中中英文對齊輸出問題,以及Java中的格式化輸出

一 中英文對齊輸出問題java

     問題,要求控制檯輸出以下:函數

    abcefg   def spa

    森林    阿狗    code

  其實就是要求對齊輸出,各類查找java的格式化輸出,而後發現只要一個簡單的「\t」就能夠實現。orm

      代碼以下:blog

      

System.out.printf("abcefg\t");
System.out.printf("def\t");
System.out.println();
System.out.printf("森林之王\t");
System.out.printf("阿狗\t");

 

二  幾個關於java格式化輸出的知識點彙總索引

    2.1 類c的printf方法ci

    Java的格式化輸出等同於String.Format,與C有很大的類似,好比 System.out.printf("%8.2f", x);字符串

    在printf中,能夠使用多個參數,例如:System.out.printf("Hello, %s. Next year, you'll be %d", name, age);

    用於printf的轉換符以下表:
io

轉換符

類型

 舉例

d

十進制整數  

159

x

十六進制整數

9f

o

八進制整數

237

f

定點浮點數

15.9

e

指數浮點數

1.59e+01

g

一般浮點數

 

a

十六進制浮點數

0x1.fccdp3

s

字符串

Hello

c

字符

H

b

布爾型

TRue

h

散列碼

42628b2

tx

日期時間

見時間介紹表

%

百分號

%

n

分隔符     

 

  在printf函數中,能夠使用多個標誌,如:  System.out.printf("%,.2f", 10000.0 / 3.0);
  用於printf的標誌以下表

標誌

目的

舉例

+

打印數字前的符號

+3333.33

space

在正數以前加空格

| 3333.33|

0

在數字前補0

003333.33

-

左對齊

|3333.33 |

(

負數括在括號內

(3333.33)

,

添加分組分隔符

3,333.33

# (for f )

包含小數點

3,333.

# (for x or o)

添加前綴 0x 或 0

0xcafe

^

轉化爲大寫

0XCAFE

$

指定格式化參數索引,如%1$d,%1$d表示以十進制
和十六進制打印第一個參數

159 9F

格式化前面參數,如%d%<x表示以十進制和十六進
制打印同一個參數

159 9F

  時間日期的轉換符以下:

轉換符

類型

舉例

C

完整日期和時間

Mon Feb 09 18:05:19 PST 2004

F

ISO 8601 日期

2004-02-09

D

美國時間格式 (mm/dd/year)

02/09/2004

T

24小時時間

18:05:19

r

12小時時間

06:05:19 pm

R

24小時無秒時間

18:05

Y

四位年

2004

y

年的後兩位

04

C

年的前兩位

20

B

月的完整拼寫

February

b or h

月的縮寫

Feb

m

兩位月(前補0)

02

d

兩位日(前補0)

09

e

日期(前不補0)

9

A

完整星期幾

Monday

a

星期幾的縮寫

Mon

j

這一年的第多少天,三位補0

069

H

24小時制小時,兩位補0

18

k

24小時制小時,兩位不補0

18

I

12小時制小時,兩位補0

06

l

12小時制小時,兩位不補0

6

M

分鐘,兩位補0

05

S

秒,兩位補0

19

L

毫秒,三位補0

047

N

毫微秒,九位補0

047000000

P

上下午大寫

PM

p

上下午小寫

pm

z

RFC 822 numeric offset from GMT

-0800

Z

時區

PST

s

1970-01-01 00:00:00起秒數

1078884319

E

1970-01-01 00:00:00起毫秒數

1078884319047

 

   

  2.2 String.format

            

public class StringFormat {
    /**
     * 格式化輸出 字符串 
     * [*]左對齊,右補空格

     * 
     * @param str
     * @param min_length : 最小輸出長度
     * @return
     */
    public static String formatLeftS(String str, int min_length) {
        String format = "%-" + (min_length < 1 ? 1 : min_length) + "s";
        return String.format(format, str);
    }

    /**
     * 格式化輸出 整數 
     * [*]右對齊,左補0

     * 
     * @param num
     * @param min_length : 最小輸出長度
     * @return
     */
    public static String format0Right(long num, int min_length) {
        String format = "%0" + (min_length < 1 ? 1 : min_length) + "d";
        return String.format(format, num);
    }

    /**
     * 格式化輸出 浮點數
     * [*]右對齊,左補0

     * 
     * @param d
     * @param min_length : 最小輸出長度
     * @param precision : 小數點後保留位數
     * @return
     */
    public static String format0Right(double d, int min_length, int precision) {
        String format = "%0" + (min_length < 1 ? 1 : min_length) + "."
                + (precision < 0 ? 0 : precision) + "f";
        return String.format(format, d);
    }
}

 

 

  2.3 其它……

相關文章
相關標籤/搜索