• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2208
  • Last Modified:

String Split() method and pipes

I'm lost for trying to explain this:

public class wtf
{
  public static void main(String[] args)
  {
    String str = "abcdef";
    String[] ary = str.split("|");
    System.out.println(ary.length);
    for(int i = 0; i < ary.length; i++)
      System.out.println(ary[i]);
  }
/*The output of this program is:
7

a
b
c
d
e
f
*/
}


Basicly I have a Vector of pipe delimited strings that I need to turn into a Vector of String arrays (broken at the pipes).
0
modsiw
Asked:
modsiw
  • 3
1 Solution
 
objectsCommented:
| is a logical or operator in a reqexp, you need to escape it to use as seperator
0
 
objectsCommented:
 String[] ary = str.split("\\|");
0
 
modsiwAuthor Commented:
thanks
0
 
objectsCommented:
no worries :)
0
 
bhatiashardeepCommented:
The split may not work if the excape is used for delimiters. Thus the split doesn't work generacally for any delimiter. On can try out this mthod.

public static String[] split(String inputString, String splitter)
    {
        List outputList = new ArrayList();
        if(inputString == null || splitter == null){
            String[] output =  (String[])outputList.toArray();
            return output;
        }
        //if the value doesn't end with the delimiter then added is as we need to get the last value
        int idx = inputString.indexOf(splitter);
        if(!inputString.trim().endsWith(splitter))
            inputString = inputString+splitter;
        while(idx != -1){
            String value = inputString.substring(0, idx);
            outputList.add(value);
            int next = idx+splitter.length();
            inputString = inputString.substring(next);
            idx = inputString.indexOf(splitter);
        }

        Object[] objectArray = new String[outputList.size()];
        outputList.toArray(objectArray);
        String[] output = (String[]) objectArray;

        return output;
    }
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now