2

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
JIANG
  • 1,687
  • 2
  • 19
  • 36

3 Answers3

5

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
Tim Biegeleisen
  • 502,043
  • 27
  • 286
  • 360
4
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);
FrankSiret
  • 186
  • 8
4

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);
Arvind Kumar Avinash
  • 71,965
  • 6
  • 74
  • 110
Unmitigated
  • 76,500
  • 11
  • 62
  • 80