Search code examples
javaregexsalesforceapex-code

Splitting a string using '|'


I have a string

|      859706 | Conficker infected host at 192.168.155.60    |        5744 |       7089 |        5 |                 4 | 1309714576 |
                1 | completed           | 

I need to split the using | which is nothing but pipe ( | ) symbol when i give the following split i get size of the array as 0

columns=parts[i].split('|');

where parts and columns are string arrays


Solution

  • | is a regex special character - you can escape it with backslash, so in java, you would write

    columns=parts[i].split("\\|"); //first backslash escapes the second for java
    

    EDIT: and if you need to support trailing empty columns, don't forget to use

    columns=parts[i].split("\\|", -1);