How To Parse String In Java With *

Viewed 200

I have a string like this.

PER*IP**TE**1234567890*EM*sampleEmail@Email.com

How can I parse the string into multiple lines like this in Java?

PER
IP
TE
//Empty String
EM
1234567890
sampleEmail@Email.com
3 Answers

You could use a regex replacement:

String input = "PER*IP**TE*1234567890*EM*sampleEmail@Email.com";
String output = input.replaceAll("\\*", "\n");
System.out.println(output);

This prints:

PER
IP

TE
1234567890
EM
sampleEmail@Email.com
String newstring = string.replace("*", "\n");
System.out.println(newstring);

now if you don't want that the empty line show up, use this:

String string = "PER*IP**TE**1234567890*EM*sampleEmail@Email.com"
String newstring = string.replaceAll("\\*+","*").replace("*", "\n");
System.out.println(newstring);

You can use String#split. Since * is a regular expression metacharacter, you need to escape it with a backslash or use Pattern#quote.

Arrays.stream("PER*IP**TE**1234567890*EM*sampleEmail@Email.com".split(Pattern.quote("*")))
   .forEach(System.out::println);
Related