How to use comma and dot as delimiter in addition

2020-03-26 05:21发布

I have a text file which contains lot of permutations and combinations of special characters, white space and data. I am storing the content of this file into an array list, and if i am not using useDelimiter() function, Java is reading my text perfectly.

The only issue is that its not accepting comma (,) and dot (.) as delimiter.

I know I can use input.useDelimiter(",|.| |\n") to use comma , dot, space as delimiter and others options as well, but then the results I get are not correct as java gives me now.

Is there a way to instruct java to use comma and dot as delimiters along with whatever default delimiter it uses?

Thanks in advance for your help :)

Regards, Rahul

3条回答
叼着烟拽天下
2楼-- · 2020-03-26 06:04

Use escaped character like this:

input.useDelimiter("\\.");
查看更多
甜甜的少女心
3楼-- · 2020-03-26 06:08

The default delimiter for Scanner is defined as the pattern \p{javaWhitespace}+, so if you want to also treat comma and dot as a delimiter, try

input.useDelimiter("(\\p{javaWhitespace}|\\.|,)+");

Note you need to escape dot, as that is a special character in regular expressions.

查看更多
Evening l夕情丶
4楼-- · 2020-03-26 06:16

You could do this:

String str = "...";
List<String> List = Arrays.asList(str.split(","));

Basically the .split() method will split the string according to (in this case) delimiter you are passing and will return an array of strings.

However, you seem to be after a List of Strings rather than an array, so the array must be turned into a list by using the Arrays.asList() utility. Just as an FYI you could also do something like so:

String str = "...";
ArrayList<String> List = Arrays.asList(str.split(","));
查看更多
登录 后发表回答