为了账号安全,请及时绑定邮箱和手机立即绑定

以点作为分隔符的拆分字符串

以点作为分隔符的拆分字符串

杨魅力 2019-07-15 19:28:58
以点作为分隔符的拆分字符串我想知道我是否要在.正确的方法?我的代码是:String[] fn = filename.split(".");return fn[0];我只需要字符串的第一部分,这就是我返回第一项的原因。我问是因为我在API中注意到.意味着任何角色,所以现在我被困住了。
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

split()接受正则表达式,因此需要转义.不把它当作正则元字符。举个例子:

String[] fn = filename.split("\\."); return fn[0];


查看完整回答
反对 回复 2019-07-15
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

Split使用正则表达式,其中“.”是一个特殊的角色,意味着什么。如果你真的想让它和‘“匹配,你需要转义它。性格:

String[] fn = filename.split("\\.");

(一个“\”来逃避“。)在正则表达式中,另一个在Java字符串中转义第一个)

另外,我不建议返回fn[0],因为如果您有一个名为something.blabla.txt,这是一个有效的名称,您将不会返回实际的文件名。相反,我认为你最好用:

int idx = filename.lastIndexOf('.');
return filename.subString(0, idx);


查看完整回答
反对 回复 2019-07-15
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

String#Split(String)方法使用正则表达式。在正则表达式中,“.”字符的意思是“任何字符”。您可以通过转义“来避免这种行为。

filename.split("\\.");

或者告诉拆分方法在字符类中拆分:

filename.split("[.]");

字符类是字符的集合。你可以写

filename.split("[-.;ld7]");

文件名将在每个“-”、“l”、“d”或“7”处分开。在字符类中,“。”不是一个特殊的字符(“元字符”)。


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 791 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信