簡體   English   中英

Java中的字符串格式。 這是什么意思?

[英]String formatting in java. What does this mean?

我看到了這段代碼,並且想知道它占用了多少字節:

// Create a PrintWriter by wrapping it around a FileWriter
PrintWriter output = new PrintWriter( new FileWriter( f, true) ); 
output.printf( "%-8s %-15s %10.2f %n", "P-102", "PartNumber102", 8.25 );
output.printf( "%-8s %-15s %10.2f %n", "P-103", "PartNumber103", 12.15 );
output.close();

P-102將占用多少字節? 似乎只有5個字符,所以5個字節對嗎? 但是8是什么意思? 我認為破折號左對齊,而s是字符串...但是8是什么意思?

同樣, PartNumber103也有13個字符,所以13個字節? 為什么看起來要占用15個字節?

您應該閱讀文檔。

與參數不對應的格式說明符具有以下語法:

  %[flags][width]conversion 

下表總結了受支持的標志。 y表示指示的參數類型支持該標志。

'-'結果將左對齊。

寬度

寬度是要寫入輸出的最小字符數。

所以-表示左對齊,寬度為8,因此至少8個字符,但可能更多。 您看到的多余字符可能來自寬度,因為將添加額外的空格以填充結果。 別忘了也要計算正在打印的東西周圍的空間。 字符串前面有一個硬編碼空間,字符串后面也有一個硬編碼空間。

雖然UCS16和其他編碼可能是這里的答案,但您的所有輸出似乎都在ASCII范圍內,因此在這種情況下可能不是答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM