public String noXYZ(String s) returns a string in which all the letters x, y, an
ID: 3925204 • Letter: P
Question
public String noXYZ(String s) returns a string in which all the letters x, y, and z have been removed. You must use a loop.
Example :
input : "I zwant ya xcat"
output : "I want a cat"
Here's my code and got know idea what is the problem
public String noXYZ(String s)
{
int i = 0;
s = s.toLowerCase();
s = s.substring(i, i+1);
do
{
if ( s.contains("x"))
{
s = s.replace("x", "");
}
if ( s.contains("y"))
{
s = s.replace("y", "");
}
if ( s.contains("z"))
{
s = s.replace("z", "");
}
i ++;
}
while (i < s.length());
return s;
}
Explanation / Answer
The code given by you is doing a wrong logic. Please find below the errors :
Here you have defined s = s.substring(i, i+1); which is nothing but returns one character, and inside while condition you have given while (i < s.length()); that is it will executes only when i is < s.length(), here s length is 1. Thus the loop will execute only once, and it returns only first character.
Instead of this, you can use the following implementation, which is probably easy :
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.