6

When I split a String:

"EMP ID||EMP NAME||DESIGNATION"

I get each letter split:

[, E, M, P, , I, D, |, |, E, M, P, , N, A, M, E, |, |, D, E, S, I, G, N, A, T, I, O, N]

My code is

String strHeader="EMP ID||EMP NAME||DESIGNATION";
String[] arrStrColumnsInRow=strHeader.split("||");

How can I get it splitted like:

[EMP ID,EMP NAME,DESIGNATION]

padippist
  • 1,088
  • 1
  • 15
  • 29

2 Answers2

22

Use

String[] arrStrColumnsInRow=strHeader.split("\\|\\|");

This is because the parameter of split is a regular expression, where | is a logical operator.

dejvuth
  • 6,726
  • 3
  • 31
  • 35
5

| is special for regular expressions - you need to escape them:

String strHeader = "EMP ID||EMP NAME||DESIGNATION";
String[] arrStrColumnsInRow = strHeader.split("\\|\\|");
System.err.println(Arrays.toString(arrStrColumnsInRow));

Output:

[EMP ID, EMP NAME, DESIGNATION]
Andreas Fester
  • 35,119
  • 7
  • 92
  • 115