一个字符以反斜杠(\)之前它是一个转义序列或转义字符。我们使用转义字符来执行某些特定任务。 Java中转义序列或转义字符的总数为 8。每个转义字符都是一个有效的字符字面量。
Java转义序列列表:
为什么我们需要转义序列?
假设我们要运行后续的Java代码:
public class Test {
public static void main(String[] args)
{
System.out.println("Hi geek, welcome to " GeeksforGeeks ".");
}
}
这段代码给出了一个编译时错误:
prog.java:3: error: ')' expected
System.out.println("Hi geek, welcome to "GeeksforGeeks".");
^
prog.java:3: error: not a statement
System.out.println("Hi geek, welcome to "GeeksforGeeks".");
^
prog.java:3: error: ';' expected
System.out.println("Hi geek, welcome to "GeeksforGeeks".");
^
3 errors
发生这种情况是因为编译器只期望引号内的字符串,但是当编译器找到一个引号时,它期望在不久的将来(关闭的那个)另一个引号,并且应该在它们之间创建文本字符串。在这种情况下,“GeeksforGeeks”这个词的引号被嵌套(在另一个引号内)。一旦编译器到达这里,编译器就会感到困惑。根据规则,引号建议编译器创建一个字符串,但编译器之前忙于做那件事,代码给了我们一个编译时错误。
因此,我们应该向编译器提供有关引号的正确说明。即,当引用用于创建字符串(作为命令)以及它本身是一个字符(输出字符串的一部分)时。
其他字符也会出现类似的混淆(如反斜杠(),单引号和双引号(’,”)),并且在每种情况下都会产生编译时错误。为了解决这些类型的问题,我们必须使用Java字符转义。
控制顺序:
控制序列什么都不是,但是与字符(必须转义的字符)粘合的反斜杠(\)称为控制序列。
例子:
\\ 是用于将反斜杠显示为输出的控制序列。
所以让我们在之前的Java代码中使用这个概念来避免编译时错误:
public class Test {
public static void main(String[] args)
{
System.out.println("Hi geek, welcome to \"GeeksforGeeks\".");
}
}
Output: Hi geek, welcome to "GeeksforGeeks".
Java转义字符的一些编码示例
- 转义序列 \t 的Java代码:
// \t -> It gives a tab between two words. public class Test { public static void main(String[] args) { System.out.println("Good Morning\t Geeks! "); } }
输出:
Good Morning Geeks!
- 转义序列 \b 的Java代码:
// The escape sequence \b is a backspace character // It moves the cursor one character back with // or without deleting the character(depending upon compiler) public class Test { public static void main(String[] args) { System.out.println("Good Morning\bg Geeks! "); } }
输出:(输出取决于编译器)
Good Morning Geeks!
- 转义序列 \n 的Java代码:
// This \n escape sequence is for a new line. public class Test { public static void main(String[] args) { System.out.println("Good Morning Geeks! \n How are you all? "); } }
输出:
Good Morning Geeks! How are you all?
- 转义序列 \r 的Java代码:
// This \r escape sequence is a carriage return character // It moves the output point back to the beginning of the line without moving down a line (usually). public class Test { public static void main(String[] args) { System.out.println("Good Morning Geeks! \r How are you all? "); } }
输出:(输出取决于编译器)
Good Morning Geeks! How are you all?
- 转义序列 \f 的Java代码:
// This \f escape sequence is a form feed character // It is an old technique and used to indicate a page break. public class Test { public static void main(String[] args) { System.out.println("Good Morning Geeks! \f How are you all? "); } }
输出:(输出取决于编译器)
Good Morning Geeks! How are you all?
- 转义序列 \’ 的Java代码
// This \' escape sequence is for printing a single quotation mark on the text string public class Gfg { public static void main(String[] args) { System.out.println("Good Morning \'Geeks!\' How are you all? "); } }
输出:
Good Morning 'Geeks!' How are you all?
- 转义序列的Java代码 \”
// This \" escape sequence is for printing a double quotation mark on the text string public class Gfg { public static void main(String[] args) { System.out.println("Good Morning \"Geeks!\" How are you all? "); } }
输出:
Good Morning "Geeks!" How are you all?
- 转义序列的Java代码 \\
// This \\ escape sequence is for printing a backslash on the text string public class Gfg { public static void main(String[] args) { System.out.println("\\- this is a backslash. "); } }
输出:
\- this is a backslash.
解释:它包含两个反斜杠,这意味着在读取第一个 \ 后,编译器将下一个 \ 作为新字符读取。