Java转义字符
转义字符以\
开头,常见的转义字符:
转义字符 | 作用 |
---|---|
\t 🌟 | 水平制表符(Tab) |
\r 🌟 | “回车(Carriage Return)” |
\n | 换行(New Line) |
\\ | 输出一个反斜杠 \ |
\" | 输出双引号 " |
\' | 输出单引号 ' |
想输出一个\
那就需要一个\
来进行转义,同理,想要输出两个\
,即\\
,就需要四个\
,即\\\\
\t
制表符:
制表符有两个功能
- 相当于按下一个tab键,在输出时插入一个固定宽度的空格,默认宽度通常是4~8个空格。
演示:
// 转义字符
public class EscapeCharacter{public static void main(String[] args){System.out.println("\t你好");}
}
F:\OneDrive - 37n671\Desktop\韩顺平零基础学Java\javacode>java EscapeCharacter
你好
- 对齐文本
演示1不使用制表符:
// 不使用制表符
// 转义字符
public class EscapeCharacter{public static void main(String[] args){System.out.println("name age gender 学号");System.out.println("Mike 20 male 20200001");System.out.println("Alexander 20 male 20200001");System.out.println("Alex 20 male 20200001");System.out.println("Alice 20 female 20200001");}
}
F:\OneDrive - 37n671\Desktop\韩顺平零基础学Java\javacode>java EscapeCharacter
name age gender 学号
Mike 20 male 20200001
Alexander 20 male 20200001
Alex 20 male 20200001
Alice 20 female 20200001
演示2使用制表符:
public class EscapeCharacter{public static void main(String[] args){System.out.println("name\tage\tgender\t学号");System.out.println("Mike\t20\tmale\t20200001");System.out.println("Alexander\t20\tmale\t20200001");System.out.println("Alex\t20\tmale\t20200001");System.out.println("Alice\t20\tfemale\t20200001");}
}
可见因为Alexander的姓名太长导致效果不好,我们可以连续使用两个\t
:
// 转义字符
public class EscapeCharacter{public static void main(String[] args){System.out.println("name\t\tage\tgender\t学号");System.out.println("Mike\t\t20\tmale\t20200001");System.out.println("Alexander\t20\tmale\t20200001");System.out.println("Alex\t\t20\tmale\t20200001");System.out.println("Alice\t\t20\tfemale\t20200001");}
}
这样对齐的就比较完美了,这种情况主要是因为\t
的对齐规则:
\t
不是固定插入4个或8个空格,而是下一个制表位(通常是8字符的倍数)
例如,Mike只有4位,下一个制表位是8,就会在Mike后面再不4个空格。
Alexander有9位,下一个制表位是16,就会在Alexander后面再补16-9=7个空格。
我们采用Mike\t\t
,将四位补充到8位,再从八位补充到16位实现和Alexander的对齐。
其他强势又简单的对其方法:
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
\t | 简单对齐 | 代码短 | 长文本可能错位 |
String.format() | 精确控制 | 完全对齐 | 代码稍长 |
printf | 格式化输出 | 简洁高效 | 需熟悉格式语法 |
\r
回车:
首先,要理解键盘上的"Enter"键通常还标有一个指示返回的箭头,这个键的功能就是回车+换行,即\r
+\n
,回车表示将光标移动到行首,换行别是将光标移动到下一行。
使用回车(\r
)将光标移到行首后,后面的输出会覆盖已经输出的内容。
示例1:
public class EscapeCharacter{public static void main(String[] args){System.out.println("Hello,\rWorld!!!");}
}
F:\OneDrive - 37n671\Desktop\韩顺平零基础学Java\javacode>java EscapeCharacter
World!!!
执行过程如下:
先打印"Hello,“遇到\r
之后将光标移到行首,即”[光标]Hello",之后"World!!!"会逐步【覆盖】光标后面的内容,最终输出World!!!
演示2:
如果前面的内容比较长,就不会完全替换
public class EscapeCharacter{public static void main(String[] args){System.out.println("Hello!!!!!!!\rWorld~");}
}
F:\OneDrive - 37n671\Desktop\韩顺平零基础学Java\javacode>java EscapeCharacter
World~!!!
PS:\r
(回车符)的行为主要依赖于终端或控制台的实现,Java 只是负责将包含 \r
的字符串原样传递给终端,而终端决定如何解释它。