String manipulation

Say i have a string representing a url such as:

String myUrl = "http://kpldb:8083/hartlepool/communityPortalHome/content/councilGateway/?view=Standard$a=5441"

What it the best and most cost effective way of taking the string and changing 'view=Standard' to 'view=TextOnly', bearing in mind the string will not always be the same length and $a=5441 will not always be on the ene
danBoshAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

CEHJCommented:
Something like:

            String myUrl = "http://kpldb:8083/hartlepool/communityPortalHome/content/councilGateway/?view=Standard$a=5441";
            final String TARGET = "view=Standard";
            final String NEW = "view=TextOnly";
            int start = -1;

            if ((start = myUrl.indexOf(TARGET)) > -1) {
                  StringBuffer sb = new StringBuffer(myUrl);
                  sb.delete(start, start + TARGET.length());
                  sb.insert(start, NEW);
                  System.out.println(sb.toString());
            }
VenabiliCommented:
What JDK do you use? If 1.4 you can use replace.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jimmackCommented:
Venabili is almost right ;-)  It's replaceAll(), not replace() ;-)

If you are using 1.4, you could do the following:

        String orig = "http://kpldb:8083/hartlepool/communityPortalHome/content/councilGateway/?view=Standard$a=5441";
        String replaced = orig.replaceAll("view=Standard", "view=TextOnly");
Learn SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

VenabiliCommented:
:) Agree
Mick BarryJava DeveloperCommented:
Possible problems with those approaches is if the String contains the text 'view=Standard' elsewhere in the url. If it is possible that this is the case then you'll need to parse the URL to perform the replacement. Let me know if this is the case and I'll show you a bullet proff approach.
CEHJCommented:
>>
Possible problems with those approaches is if the String contains the text 'view=Standard' elsewhere in the url.
>>

No with my approach ;-)
CEHJCommented:
No=Not ;-)
danBoshAuthor Commented:
sorry CEHJ i ment to accept your answer, i made a school boy error
CEHJCommented:
Don't worry. Repetition is not an issue anyway:

1. it can't be included before the query string
2. if it occurs more than once in the query string it'll be ignored by the server after the first occurrence anyway
Mick BarryJava DeveloperCommented:
> No with my approach ;-)

Yes it can have problems.
jimmackCommented:
replaceFirst() is another alternative (aside from the fact that the point is now moot anyway ;-))
CEHJCommented:
>>now moot

now academic surely? ;-)
jimmackCommented:
Indeed :-P

;-)
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.