This week's book giveaway is in the Clojure forum.
We're giving away four copies of Clojure in Action and have Amit Rathore and Francis Avila on-line!
See this thread for details.
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

split() method in String API

 
Amirtharaj Chinnaraj
Ranch Hand
Posts: 241
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi guys
this is my main method code


the output is


if i replace the my main method code with this


my output looks like


my Question is why split method is not functioning propery with String two[]= te.split("|");
looking for your replies
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24204
34
Chrome Eclipse IDE Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The argument to split is a regular expression; a kind of pattern to match against. "|" is a special character in regular expressions. To use it as a plain character, you must escape it with a backslash; to make sure the regular expression parser sees the backslash, you must double it. So the proper syntax is going to be:

String two[]= te.split("\\|");
 
Amirtharaj Chinnaraj
Ranch Hand
Posts: 241
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks for your reply Ernest
but my doubt still exist

in the above case my split pattern dosent match in the string te


but in the above even though the split pattern dosent match why the characters are splited and return as an array

looking for your replies
amir
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Pie
Posts: 15150
31
Android IntelliJ IDE Java Scala Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I still see this line in your code:

String two[]= te.split("|");

instead of what Ernest suggested:

String two[]= te.split("\\|");

Did you try this?
 
Joanne Neal
Rancher
Pie
Posts: 3742
16
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Amirtharaj Chinnaraj:

but in the above even though the split pattern dosent match why the characters are splited and return as an array


The | is a special character in regular expressions that means match either the part on the left side or the part on the right side of the |. As you don't have anything on either the left or right of the |, I presume (I'm not a RE expert) it is interpreted as meaning match anything, so you get back an array with each element being a single character string.
 
Campbell Ritchie
Sheriff
Pie
Posts: 47262
52
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Joanne Neal:


The | is a special character in regular expressions that means match either the part on the left side or the part on the right side of the |. As you don't have anything on either the left or right of the |, I presume (I'm not a RE expert) it is interpreted as meaning match anything, so you get back an array with each element being a single character string.
More likely it is interpreted as "match nothing or nothing". You get a "nothing" after every letter, so it matches that and then goes to the next letter. That is why it splits the String into individual single letters.
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic