JavaRush /Java 博客 /Random-ZH /Java 中的转义字符
Oleksandr Klymenko
第 13 级
Харків

Java 中的转义字符

已在 Random-ZH 群组中发布
出了些问题!本文是作为 JavaRush 团队的一个职位的测试作业而编写的。它是作为一个完整的讲座而写的。因此,我向您保证在这篇文章中积累的有用知识的质量和数量。除了实践和理论信息之外,本文还包含您可能不知道的有趣事实! Java 中的转义字符 - 1你好世界! 字符转义是一个非常有趣且必要的技术方案。字符转义的需求在整个编程行业的历史中发挥了重要作用。在这篇文章中,我们将讨论什么是字符转义,为什么需要转义它们,以及字符转义在Java中是如何实现的。本文将提供与字符转义主题相关的示例和有趣的事实。享受阅读!计算机系统中的所有信息都以文本的形式表示,在较低级别上用字节表示。当我们写信或消息时,我们输入的是人们可以理解的文本。当我们在 IDE 中编写代码时,我们输入编译器可以解析的文本。在 Java 中,文本可以表示为一种类型String,其数据由控制字符(成对的引号)表示。
String str = "Hello World!";
文字为“Hello World!” 不会出现任何问题,但是如果需要在直接语音中突出显示相同的文本怎么办?使用语法规则,很明显,除了类型中的控制字符之外,文本“Hello World!”还String必须放置在直接语音引号中。
String str = "Java said, "Hello World!"";
该选项不起作用,因为 编译器根本无法理解变量的初始化在什么时候结束str。为了解决这个以及类似的问题,就发明了转义字符,即将控制字符改为所谓的控制序列,也称为转义序列。下面是在字符串中使用的有效 Java 转义序列的列表。 \t — 制表符(在 java 中 – 相当于四个空格); \b— 文本中的回车字符后退一步或删除一行中的一个字符(退格键); \n— 新线符号; \r— 回车符号; \f— 跳页到下一页的开头; \'— 单引号字符; \"— 双引号字符; \\— 反斜杠字符 ( \)。现在让我们突出显示短语中的直接语音,以便编译器可以轻松解析所写的内容。
String str = "Java said, \"Hello World!\"";
str因此,如果变量的内容显示在屏幕上, 则编写的文本对于编译器和人来说都是可以理解的。我们弄清楚了什么是字符转义以及为什么需要它。他们甚至转义了双引号字符!让我们继续解析剩余的转义序列。
还有什么要读的:

Java 开发者小组:

行中的制表符由转义序列指示\t,类似于四个空格。但是,如果由四个空格组成的字符串的长度等于四个字符的长度,则带有制表符的字符串的长度将等于一。制表符通常用于构造表格或伪图形界面元素,因为... 这比写四个空格更方便。下面是一个伪图形界面的示例。 Java 中的转义字符 - 2在所有转义序列中,该符号\b可能是最有趣的,因为它允许我们删除输出行中的最后一个字符,类似于我们通过按退格键删除它。
System.out.print("2 + 2 = 5"); // Screen displays 2 + 2 = 5
System.out.print("\b");// Screen displays 2 + 2 =
System.out.print("4");// Screen displays 2 + 2 = 4
符号\n\r共同的历史 - 让我们一起看看它们。\n您以前可能遇到过换行符。例如,如果一个方法println()输出信息使得下一个输出将换行,那么该方法print()在输出后不会执行换行,但如果在输出末尾添加一个字符\n,则换行将被执行。
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
回车符\r允许我们将光标返回到输出行的开头并显示新信息,就好像该行之前没有任何内容一样。
System.out.print("Text to be rewritten.");//The screen displays "Text to be rewritten."
System.out.print('\r');//The screen is blank
System.out.print("New text.");//The screen displays "New text."
事实上,回车可以追溯到用打字机打印文本的时代。要执行换行,需要移动笔架并降低杠杆(打字机机构的一部分),然后才能执行换行。如果不降低控制杆,则可以继续在同一行上打印。这就是我们在显示符号时观察到的情况\r。对此,当程序员想要执行换行时,他出于习惯,在输出的末尾执行了一系列字符\r\n。随着打字机时代的结束,有一代程序员仍然使用这个序列,尽管他们自己从未使用过打字机。他们经常忘记完成给定序列所需的顺序 -\r\n\n\r。然后一个测试词帮了他们的忙return,这些符号的显示顺序清晰可见。然而,后来,在为 MS-DOS 之后的第一个版本的 Windows 开发软件时,程序员被迫使用该序列\r\n。现在您不必担心这一点,只需使用字符即可换行\nJava 中的转义字符 - 3让我们再次回到80年代左右。\f就在那时,前进到下一页开头的符号开始流行。当时,有大型行式打印机,要使用它们,必须编写包含打印机应打印内容和方式的程序代码。为了表明文本必须从新页面开始,使用了符号\f。在我们这个时代,这个符号早已失去了它的相关性,你不太可能遇到它。线性打印机的尺寸非常令人印象深刻。 Java 中的转义字符 - 4使用符号\’\\一切都与转义双引号完全相同,文章开头有一个例子。例如,您必须转义单引号,才能使用单引号初始化 char 类型。
char ch = '\'';
转义反斜杠字符以指示后续字符不会成为转义序列的一部分。
System.out.println("\\n - line break escape sequence");
// Output: \n - line break escape sequence
实际上,在使用路径时通常必须转义反斜杠:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
// Output: It's Java string: "C:\Program Files\Java\jdk1.7.0\bin"
Я подчеркнул, что данные escape-последовательности употребляются в строках (строковых литералах), т.к. остальная их часть используется для описания регулярных выражений класса Pattern и не относится к теме данной статьи. Здесь можно ознакомиться со списком всех escape-последовательностей класса Pattern. Однако, стоит отметить, что регулярные выражения в том виде, в котором они есть сейчас, невозможно представить без использования escape-последовательностей не только в java, но и в других популярных языках программирования, например, PHP. В java экранирование символов используется и в форматировании строк. Например, задавая формат строки для отображения символа процента, необходимо продублировать символ процента – %%, иначе получим ошибку, а IDE будет предлагать дописать процент.
System.out.printf("Milk fat percentage : %d%%", 10);
// Milk fat percentage : 10%
На этом статья подходит концу. Надеюсь, вы узнали много нового об экранировании символов, и о том, How применять это на практике. Экранирование символов присуще многим языкам программирования. В java, How и в других си-подобных языках данная технология реализована почти одинаково. Поэтому, полученные вами знания из этой статьи вполне могут пригодится не только в java. Спасибо за внимание и удачи в обучении!
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION