A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public static void main(String[] args) {

  2.                 String randstring="kjncxbf'h][[][.h/\[l[jp[.l[";
  3.                 String t=randstring.substring(5);
  4.                 System.out.println(t);
  5. }
复制代码
这段代码为何报出以下错误?
  1. Exception in thread "main" java.lang.Error: Unresolved compilation problem:
  2.         Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

  3.         at com.itheima.add.main(add.java:7)
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

7 个回复

倒序浏览
本帖最后由 落木萧萧 于 2013-11-4 14:28 编辑

报错里的是一些特殊符号,是不能直接输出的。

  1. 比如单引号 ' 要写成 \',双引号要写成\"
复制代码
这叫转义字符,建议楼主看一下百度百科的词条。

评分

参与人数 1黑马币 +3 收起 理由
乔兵 + 3

查看全部评分

回复 使用道具 举报
根据提示:你代码输出字符串里面有“\[”连在一起,而  ' \'   是转义符,但与  '[' 连在一起是错误用法(提示说的很清楚),Java才会报出转义符异常,如需使用,在源代码  ' \ '后再加一个 ' \ '即可。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
java里面只要写在字符窜里的 \ 都代表转义,比如要用\ 本身,就要写成\\用自己转义一下。
回复 使用道具 举报
“\[”连在一起  没有被java所识别
如果需要输出的这样的话   需要修改代码成“\\[”   第一个\表示转意
主要是由于防止你需要输出的语句里有java语言中特殊含义的字符混淆
\b 表示退格  
\t  表示制表符(TAB)  
\n 表示回车  
\f
\r 同表示回车  
\"表示能单独输出 “   
\' 表示能单独输出’
\\表示能单独输出\

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
这里的错误是关于转义字符,\'才是代表单引号,所以字符串中的单引号应写成\'
回复 使用道具 举报
问题出在\[,这两个符号在一起被认为是转义字符了,
所以系统才提示你如果输入转义字符的话就输入\t,\b等等。
要输入\的话就用\\就好了
回复 使用道具 举报
枫儿 金牌黑马 2013-11-6 08:51:31
8#
不用说,初始化的String肯定是你狂乱敲键盘出来的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马