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

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

我想知道我是否要在.正确的方法?我的代码是:

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

我只需要字符串的第一部分,这就是我返回第一项的原因。我问是因为我在API中注意到.意味着任何角色,所以现在我被困住了。


杨魅力
浏览 796回答 3
3回答

qq_遁去的一_1

split()接受正则表达式,因此需要转义.不把它当作正则元字符。举个例子:String[] fn = filename.split("\\."); return fn[0];

慕的地6264312

Split使用正则表达式,其中“.”是一个特殊的角色,意味着什么。如果你真的想让它和‘“匹配,你需要转义它。性格:String[] fn = filename.split("\\.");(一个“\”来逃避“。)在正则表达式中,另一个在Java字符串中转义第一个)另外,我不建议返回fn[0],因为如果您有一个名为something.blabla.txt,这是一个有效的名称,您将不会返回实际的文件名。相反,我认为你最好用:int idx = filename.lastIndexOf('.'); return filename.subString(0, idx);

繁星淼淼

String#Split(String)方法使用正则表达式。在正则表达式中,“.”字符的意思是“任何字符”。您可以通过转义“来避免这种行为。filename.split("\\.");或者告诉拆分方法在字符类中拆分:filename.split("[.]");字符类是字符的集合。你可以写filename.split("[-.;ld7]");文件名将在每个“-”、“l”、“d”或“7”处分开。在字符类中,“。”不是一个特殊的字符(“元字符”)。
打开App,查看更多内容
随时随地看视频慕课网APP