[英]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.