We're a community of 1.1M IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,080,324 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

[Basic] splitting a string

ok, I'm pretty embarrassed to be posting such a simple question, I feel like I've done this in much harder applications like a million times...

String[] wordVar = text.split("$");

Why does the above code not split the String 'text' at each occurrence of a "$"? Is the "$" a special character or something? when I execute this code and then get text.length; it returns 1 regardless of the number of "$"s..

What am I doing wrong?

3
Contributors
6
Replies
1 Day
Discussion Span
1 Year Ago
Last Updated
7
Views
Question
Answered
FALL3N
Junior Poster in Training
89 posts since May 2010
Reputation Points: 10
Solved Threads: 2
Skill Endorsements: 0

Yes, the param for split is Regex, and $ is a special char in regular expressions. You have to escape it with a backslash to use it as a literal $

JamesCherrill
... trying to help
Moderator
8,667 posts since Apr 2008
Reputation Points: 2,636
Solved Threads: 1,477
Skill Endorsements: 33

But this does not work either...

String[] text = word.split("\$");

should I declare the "\$" as part of a Pattern? Or a Matcher? or use ' instead of "? I know this started out ridiculous, and just keeps getting more ridiculous, but I am really getting thrown by this.

FALL3N
Junior Poster in Training
89 posts since May 2010
Reputation Points: 10
Solved Threads: 2
Skill Endorsements: 0

But this does not work either...

String[] text = word.split("\$");

should I declare the "\$" as part of a Pattern? Or a Matcher? or use ' instead of "? I know this started out ridiculous, and just keeps getting more ridiculous, but I am really getting thrown by this.

[EDIT] See below post

DavidKroukamp
Master Poster
Team Colleague
735 posts since Dec 2011
Reputation Points: 279
Solved Threads: 181
Skill Endorsements: 4

But this does not work either...

String[] text = word.split("\$");

should I declare the "\$" as part of a Pattern? Or a Matcher? or use ' instead of "? I know this started out ridiculous, and just keeps getting more ridiculous, but I am really getting thrown by this.

your biggest problem might be you are using one back slash:

String h="re$rt$yy";
        String[] a=h.split("\\$");
        for(int i=0;i<a.length;i++) {
        System.out.println(a[i]);
    }
DavidKroukamp
Master Poster
Team Colleague
735 posts since Dec 2011
Reputation Points: 279
Solved Threads: 181
Skill Endorsements: 4

That's right. It's messy, but $ is a special char in a RegEx and needs to be escaped with a \. But \ is a special char in Java string literal, and needs to be escaped with a second \. So to get a literal $ in a RegEx you need the Java string literal "\\$"

JamesCherrill
... trying to help
Moderator
8,667 posts since Apr 2008
Reputation Points: 2,636
Solved Threads: 1,477
Skill Endorsements: 33

hmm.. That's why it was not working right... thanks guys!

FALL3N
Junior Poster in Training
89 posts since May 2010
Reputation Points: 10
Solved Threads: 2
Skill Endorsements: 0
Question Answered as of 1 Year Ago by JamesCherrill and DavidKroukamp

This question has already been solved: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page generated in 0.0831 seconds using 2.68MB