切割字符串,切迷茫了。

牧之~ 2016-08-29 11:14:44
真没想到J2SE都不会了。

KA4g4cNAQlW0QDnS9WHHt+i4yTlib+LtrruC06E+VjgWXZY/2FAz9AAxezCHIwTn5+XIiLySEqew\nlEwkLa/iyK+q4TGAxswBClrD3sV5XJ2zLnt2T6lT2XeC0X3Qd+W0I+FyF75QiK2XU1chhow8BeQp\nI8DNhP5zn0f/Cs9vqN4=\n

String[] keys = passKey.split("\n");
String[] keys = passKey.split("\\n");

上面两行切割,出来的结果为啥一模一样?
而且对于其中的任意一行,放在不同环境,结构有可能也不同?(还没验证)
不知道为啥。
...全文
280 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_08_06_02 2016-08-30
  • 打赏
  • 举报
回复
HerveyHall 2016-08-29
  • 打赏
  • 举报
回复
楼上说得好,\\n是\n的正则写法
bree06 2016-08-29
  • 打赏
  • 举报
回复
结果当然一样了, \n是一个字符, \\n是两个字符, 第一种采用substring切割, 第二种采用正则切割.
lemonNationRm 2016-08-29
  • 打赏
  • 举报
回复
\的使用要考虑到\的后面是否是有含义的字符,如果有含义,在java中会先识别\n再识别\,因此很多时候需要加\,比如变态的再识别\\的时候需要\\\\来表示
unauthorized401 2016-08-29
  • 打赏
  • 举报
回复
用“\n”和“\\n”调用的方法不同,后面一个调用正则表达式的方法,不过这两个的执行结果应该是一样的。
codingjav 2016-08-29
  • 打赏
  • 举报
回复
根据你输入的编译器会根据来选择哪种类型的编译
牧之~ 2016-08-29
  • 打赏
  • 举报
回复
引用 3 楼 hhv_01 的回复:
楼上说得好,\\n是\n的正则写法
有一点没说明,长串变量是从数据库中读取出来的,不是写死的 String s="";的形式。
牧之~ 2016-08-29
  • 打赏
  • 举报
回复
引用 2 楼 bree06 的回复:
结果当然一样了, \n是一个字符, \\n是两个字符, 第一种采用substring切割, 第二种采用正则切割.
但是事实是在我本机切割后长度是3,在环境上是1,两种写法都是,我想要的肯定是3。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧