我有一个文本文件,其中包含许多排列以及特殊字符,空格和数据的组合。
我将此文件的内容存储到数组列表中,如果我没有使用useDelimiter()
函数,Java正在完美地读取我的文本。
唯一的问题是它不接受逗号(,
)和点(.
)作为分隔符。
我知道我可以使用input.useDelimiter(",|.| |\n")
将逗号,点,空间用作分隔符和其他选项,但是然后我得到的结果不正确,因为java现在给我了。
有没有办法指示java使用逗号和 dot 作为分隔符以及它使用的默认分隔符?
提前感谢您的帮助:)
此致 拉胡
答案 0 :(得分:2)
Scanner的默认分隔符定义为模式\p{javaWhitespace}+
,因此如果您还想将逗号和点视为分隔符,请尝试
input.useDelimiter("(\\p{javaWhitespace}|\\.|,)+");
请注意,您需要转义点,因为这是正则表达式中的特殊字符。
答案 1 :(得分:1)
使用这样的转义字符:
input.useDelimiter("\\.");
答案 2 :(得分:0)
你可以这样做:
String str = "...";
List<String> List = Arrays.asList(str.split(","));
基本上.split()方法会根据(在这种情况下)你传递的分隔符拆分字符串,并返回一个字符串数组。
但是,您似乎在使用字符串列表而不是数组,因此必须使用Arrays.asList()实用程序将数组转换为列表。就像一个FYI,你也可以这样做:
String str = "...";
ArrayList<String> List = Arrays.asList(str.split(","));