我知道" \"是Java中的转义字符。所以我的理解是每当我声明一个包含特殊字符的字符串时,我需要通过" \"来转义它。例如:
const
我必须为ascii字符\ 037创建一个字符串,显然我似乎不需要用" \"来逃避它。
String backSlash = "\\";
为什么?
答案 0 :(得分:3)
我的理解是每当我声明一个包含特殊字符的字符串时,我需要通过
来转义它LinkedHashMap<String, Integer> mapWithOrder = strings .stream() .collect( LinkedHashMap::new, // Supplier (map, item) -> map.put(item, item.length()), // Accumulator Map::putAll); // Combiner
您的理解是不完整的:Java字符串文字中的反斜杠"\"
可以引入one of three types的转义序列:
\
,\b
,\t
,\n
,\f
,{{1} },\r
和\'
\"
开头并且最多包含四个十六进制数字的序列\\
开头且序号为0到377 8 的序列,从0开始您的示例具有第三种序列(八进制)。
答案 1 :(得分:1)
您正在撰写octal number:
八进制数字由ASCII数字0后跟一个或多个以下划线散布的ASCII数字0到7组成,并且可以表示正整数,零或负整数。
如果写成“037”,它稍后会被解释为“0”“3”“7”。