📜  Java的转义序列

📅  最后修改于: 2021-10-23 07:37:19             🧑  作者: Mango

一个字符以反斜杠(\)之前它是一个转义序列或转义字符。我们使用转义字符来执行某些特定任务。 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转义字符的一些编码示例

  1. 转义序列 \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!  
  2. 转义序列 \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! 
     
  3. 转义序列 \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? 
    
  4. 转义序列 \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? 
    
  5. 转义序列 \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? 
     
  6. 转义序列 \’ 的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? 
  7. 转义序列的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? 
  8. 转义序列的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. 

    解释:它包含两个反斜杠,这意味着在读取第一个 \ 后,编译器将下一个 \ 作为新字符读取。