Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Java String Exercise

Posted on 2016-07-26
11
Medium Priority
?
79 Views
Last Modified: 2016-07-31
I am working on an exercise in JAVA 1.8 that goes like this.
I have a String : "Able was I, ere I saw Elba."
I need to remove spaces and punctuation and capitalize it all.
Then I need to save a copy of it in reverse order and compare the two to see if they are the same.

Does anyone have a suggestion on how they might achieve this ?
I was thinking along the lines of a regex /[a-zA-Z]+/g    as a possibility. But I don't know how to extract the words using a RegEx.
The result of the extraction would have the above expression returned as "ABLEWASIEREISAWELBA" .

Thanks,

Dave
0
Comment
Question by:David King
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
  • +1
11 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 41729398
Some pointers:

String.toUpperCase
String.replace
StringBuilder.reverse
2
 

Author Comment

by:David King
ID: 41729424
Thanks, I'll research the API docs on those.
0
 

Author Comment

by:David King
ID: 41729504
I have tested my RegEx /[a-zA-Z]+/g on my test string and it selects all of the words correctly. Is there a String class method that I can use that will allow me to use my RegEx expression to select the Words in my String and Return them back as a string, leaving the un-selected text behind?
?
0
Build and deliver software with DevOps

A digital transformation requires faster time to market, shorter software development lifecycles, and the ability to adapt rapidly to changing customer demands. DevOps provides the solution.

 
LVL 86

Expert Comment

by:CEHJ
ID: 41729565
I have tested my RegEx /[a-zA-Z]+/g on my test string and it selects all of the words correctly.
How and where?
Is there a String class method that I can use that will allow me to use my RegEx expression to select the Words in my String and Return them back as a string
That's not really how regex works. You need to think about replacement
0
 

Author Comment

by:David King
ID: 41729600
I am trying to use the String.replace(regex , string) method to get the job done.

Like this;

public class PalCode
{

    public PalCode()
    {
        String palString = new String("Able was I, ere I saw Elba."); // original input String
        String workedString = new String(""); // String after manipulation
        workedString = palString.replace("[^a-zA-Z]+/g" , "");
        System.out.println("Manipulated string result is: " + workedString);

    }
}// end class PalCode

The regex expression should match character that are NOT a-z or A-Z and replace them with "nothing".
The program runs and compiles without any errors but the regex has NO effect. ??
0
 

Accepted Solution

by:
David King earned 0 total points
ID: 41729612
OK, I got it. This works.

public class PalCode
{

    public PalCode()
    {
        String palString = new String("Able was I, ere I saw Elba."); // original input String
        String workedString = new String(""); // String after manipulation
        workedString = palString.replaceAll("[^a-zA-Z]+" , "").toUpperCase();
        System.out.println("Manipulated string result is: " + workedString);

    }
}// end class PalCode


("Able was I, ere I saw Elba."); // original input String
Manipulated string result is: ABLEWASIEREISAWELBA
0
 
LVL 32

Expert Comment

by:awking00
ID: 41729632
The String replace method will replace a char sequence or array. I think you should look at the replaceAll method which takes a regular expression as its first argument.
0
 
LVL 32

Expert Comment

by:awking00
ID: 41729634
Too late with my replaceAll suggestion :-(
0
 
LVL 32

Expert Comment

by:awking00
ID: 41729645
Now you just need to create a string that's the reverse of the string you have and compare them to complete your task.
0
 
LVL 16

Expert Comment

by:krakatoa
ID: 41729717
When you come back again with your next question, be great if you could stick your code in the code formatting delimiters. ;)
1
 

Author Closing Comment

by:David King
ID: 41736374
Figured it out.
0

Featured Post

Build and deliver software with DevOps

A digital transformation requires faster time to market, shorter software development lifecycles, and the ability to adapt rapidly to changing customer demands. DevOps provides the solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
We are witnesses that everyone is saying that our children shouldn't "play" with a technology because it is dangerous. This article is going to prove that they are wrong.
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
Suggested Courses

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question