Rahul
Rahul

Reputation: 191

How to use comma and dot as delimiter in addition with Java default delimiter

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

Upvotes: 3

Views: 8227

Answers (3)

optimistic_creeper
optimistic_creeper

Reputation: 2799

Use escaped character like this:

input.useDelimiter("\\.");

Upvotes: 2

Richard
Richard

Reputation: 9928

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.

Upvotes: 3

PSo
PSo

Reputation: 1008

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(","));

Upvotes: 1

Related Questions