Java 如何解释转义字符的用户输入?
用户输入一个值,如Java 如何解释转义字符的用户输入?,java,escaping,Java,Escaping,用户输入一个值,如\n,\t,\r等 Java当然会用反斜杠转义上述字符。因此,应用程序在缓冲区中有以下字符串 \\n,\\t,\\r 现在如何将这些字符串转换回\n,\t,\r 我可以写一个switch语句。但是有无限的选择 如果用户输入一些unicode字符怎么办 这不起作用userInput.replaceAll(“\\\\”,“\\”) 如何解释转义字符的用户输入?您可以使用 unescapeJava 公共静态字符串unescapeJava(字符串str) 取消扫描字符串中找到的任何Ja
\n
,\t
,\r
等
Java当然会用反斜杠转义上述字符。因此,应用程序在缓冲区中有以下字符串
\\n
,\\t
,\\r
现在如何将这些字符串转换回\n
,\t
,\r
我可以写一个switch
语句。但是有无限的选择
如果用户输入一些unicode字符怎么办
这不起作用userInput.replaceAll(“\\\\”,“\\”)
如何解释转义字符的用户输入?您可以使用 unescapeJava 公共静态字符串unescapeJava(字符串str)
取消扫描字符串中找到的任何Java文本。例如,它会将“\”和“n”序列转换为换行符,除非 “\”前面有另一个“\” 参数:str-unescape的字符串可能为空
返回:一个新的未转换字符串,如果字符串输入为null,则返回null
但是,如果您不想将这些转义字符转换为它们的实际含义(如将
\n
转换为新行),那么实际上就不需要取消转义字符。Java只会转义这些字符以将它们存储在变量中。若您计划将其输出给用户,那个么java将自动取消它的显示
考虑一下这个代码
import java.util.Scanner;
public class Adding {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("Please enter something : ");
String userInput = sc.nextLine();
System.out.println("You Entered : " + userInput);
}
}
控制台
Please enter something : hello\nworld
You Entered : hello\nworld
在上面的示例中,
hello\nworld
被存储为变量userInput
中的hello\\nworld
,非常感谢您的详细解释