anlam456
anlam456

Reputation: 53

Removing letters from a string using a while loop in Java

while (sentence.indexOf(lookFor) > lookFor)
{
    sentence += sentence.substring(sentence.indexOf(lookFor));
}
String cleaned = sentence;
return cleaned;

This is what I have tried to do in order to remove letters. lookFor is a char that was put in already, and sentence is the original sentence string that was put in already. Currently, my code outputs the sentence without doing anything to it.
EX Correct Output: inputting "abababa" sentence; char as "a" --->outputting "bbb" inputting "xyxyxy" sentence; char "a" ---> outputting "xyxyxy"

Upvotes: 0

Views: 7953

Answers (3)

stack smasher
stack smasher

Reputation: 463

If you just need to get rid of letters use the replace method that others have written, but if you want to use a while loop, based on what I've seen of your logic, this is how you'd do it.

while (sentence.indexOf(lookFor) == 0)
    sentence = sentence.substring(1);
while (sentence.indexOf(lookFor) > 0)
{
    sentence = sentence.substring(0, sentence.indexOf(lookFor)-1)+
               sentence.substring(sentence.indexOf(lookFor)+1);
}
return sentence;

Upvotes: -1

Tea Curran
Tea Curran

Reputation: 2983

it probably isn't entering the loop at all.

sentence.indexOf(lookFor) is going to return the place of the character in the string.

lookFor is a char value. A value of 'a' has a numeric value of 97 so the while will only find things after the first 97 characters.

If your code ever entered the loop it would never return.

the substring command you are calling will take the found item to the end of the string.

+=, if it did what you think will append it to itself. so it will take 'ababab' and make it 'abababababab', forever. but luckily you can't use += on a string in java.

What you want is:

String something = "abababab";
something = something.replaceAll("a", "");

Upvotes: 0

Jürgen K.
Jürgen K.

Reputation: 3487

You don't need while for a single string. Only if you read a text line after line. In your case something like

String a = "abababa";
a = a.replace("a",""); 

would give you the output "bbb"

Upvotes: 4

Related Questions