-1
我試圖printf一個字符串,其中字段寬度由變量給出,而不是在格式字符串中進行硬編碼。另外,我希望printf在新行上啓動字符串。動態地爲printf創建一個格式字符串,其中包含 n
System.out.printf("\r\n>%-32s<", "Hello World"); //works ok
輸出(初始換行符不會在計算器格式化顯示):
>Hello World <
的這裏cheverons沒有命令行提示,但在視覺上確認字段的寬度。但是,如果我嘗試動態構造格式字符串,只要我能看到正確的轉義序列,我就不能獲得初始返回&新行字符,實際上會導致返回&新行。
import java.util.*;
class DynamicFormatStringTest {
private static final int TEXT_LENGTH = 32;
public static void main(String[] args){
String myFormat = "\\r\\n>%-" + TEXT_LENGTH+ "s<";
//System.out.println(myFormat); //prints \r\n>%-32s<
System.out.printf(myFormat, "Hello World");
}
}
輸出:
\r\n>Hello World <
我越來越字面\ r \ n個輸出。
誰能告訴我什麼是正確的技術?
的可能的複製[如何在Java格式字符串(http://stackoverflow.com/questions/6431933/how-to-format-strings-in-java) – DimaSan
我不明白它......即使你知道'\ r \ n'工作正常,你爲什麼要用'\\ r \\ n'? – Tom