"23\56\78".split("\\") 无法按照\分割啊

J2EE 码拜 8年前 (2016-03-19) 998次浏览
“23\56\78”.split(“\”)      无法按照\分割啊
解决方案

10

首先,你的字符串假如有\分隔符,不应该只有一个\,这是特殊字符,会被编码成其他东西
String s = “23\56\78” 才是正解
其次分隔方法如下:
String[] split = “23\56\78”.split(“\\”);

5

引用:
Quote: 引用:

首先,你的字符串假如有\分隔符,不应该只有一个\,这是特殊字符,会被编码成其他东西
String s = “23\56\78” 才是正解
其次分隔方法如下:
String[] split = “23\56\78”.split(“\\”);

直接定义  String s= “23\56\78”;   不报错啊 你可以在eclipse试一下啊

小弟,哥哥做了6年java了,不会骗你,\56\78这种东西会被转义成其它东西,你咋不懂呢,本人去断点看下吧,
不是说报错,就像String s= “\n” 代表回车是一个意思,那不是原来的字符串了,懂吗,你可以不用反斜杠做分隔符
例如竖线|也可以啊,不啰嗦了。

10

“\\”是一个很蛋疼的正则式,想表达的只是一个普通的\字符,但是为啥变成4个而不是2个”\”?
我们先看看”\.”,这里有个小点。
原因是”.”本身也是正则式特殊含义的,需要用\转义,但是我们用”\.”时,发现是不可行的,原因是””也是一个特殊的字符,也要对它进行转义,于是变成了”\.”
再回头看看””,这个本身就无法编译通过,原因是”会转义,导致我们的字符串少了一个”
那再加一个”\”,这时候编译不报错,但是此时的含义是“按照\这个特殊字符来分割字符串”,于是我们会发现运行时报错了。
那再加一个”\”, 好吧,编译失败,提示字符串又少了一个”
再加一个”\\” ,万事大吉。
因此,我们可以用这样的眼光看这四个斜杠杠:(\)(\)
第一个括号里的两个斜杠,转义成一个转义字符 斜杠1;第二个括号里的两个斜杠,也转义成一个转义字符 斜杠2,斜杠1和斜杠2在一起,斜杠1把斜杠2转义成普通字符了。
总结一下,假如想写的正则式里包含需要转义的字符,需要在其前面加一个普通字符\作为转义字符,而不是转义字符\本身。单独的\会作为一个计算符号,和后面紧跟的任意字符做转义操作,因此它不会作为字符串的一部分。
试试这行代码System.out.println(“\\”.length());
嗯,大致就这个意思了吧!

5

“23\56\78”.split(“\\”)      无法按照\分割啊
四个斜杠才正确!
"23".split("\") 无法按照\分割啊

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明"23\56\78".split("\\") 无法按照\分割啊
喜欢 (0)
[1034331897@qq.com]
分享 (0)