Java编译报错:非法转义字符,如何修复String.format问题?
修复Java编译「error: illegal escape character」错误
核心问题
- 非法转义字符:Java字符串中
\是转义字符,\%不属于合法转义序列,直接导致编译报错。从你的预期输出看,这里的\%是误写——你需要的是空格分隔,而非输出%符号,空格在字符串中无需转义,直接书写即可。 - 格式符与参数不匹配:传入的
1299.97、465.64是浮点数,却使用了整数格式符%d,即使编译通过,运行时也会抛出异常,需替换为浮点数格式符%f并指定小数位数。
修复后的代码
public static void main(String... args) { String output = String.format("%7.2f %7.2f %5d\t%5s\t%s", 1299.97, 465.64, 1963, "00694", "ATLAS CENTAUR 2"); System.out.println(output); }
关键修改说明
- 移除所有
\%,直接用空格分隔不同格式段,满足预期输出的排版需求。 - 将
%7d改为%7.2f:7控制输出总宽度(包含小数点和小数位),.2指定保留两位小数,完美匹配浮点数的显示效果。 - 修正
%%5s为%5s,多余的%会导致输出额外的%符号,去掉后实现5位宽度的字符串对齐。
运行结果
1299.97 465.64 1963 00694 ATLAS CENTAUR 2
与你预期的输出完全一致。
内容的提问来源于stack exchange,提问作者iEdit4Fun
相关产品推荐
相关产品推荐

