Computer Science Canada

My program does not work properly

Author:  mix12 [ Thu Nov 25, 2004 5:32 pm ]
Post subject:  My program does not work properly

My return method is not wokring properly
I have to do a school assignment.

There are 3 inputs, the first one is the main string, the second input is the substring and the 3rd input is the prefix

I have to make it so that every occurance of the substring within the main string has to have the prefix infront of it.
(Just if you are wondering, i am using the the HSA console)
This is the return method:

private static String prefix (String sentence, String word, String before)
{
int y = 0;
int x = 0;
String insert = "";
String mid = "";
String end = "";
while (true)
{
if (sentence.charAt (y) == word.charAt (x))
{
while (true)
{
if (word.charAt (x) != sentence.charAt (y))
{
break;
}
if (x == (word.length () - 1))
{
while (true)
{
int z = 0;
insert += sentence.charAt (z);
z++;
if (z == y)
{
break;
}
}
mid = before;
while (true)
{
int a = y;
end += sentence.charAt (a);
a++;
if (a == sentence.length () - 1)
{
break;
}
}
}
x++;
y++;
}
}
x = 0;
y++;
if (y == sentence.length () - 1)
{
break;
}
}
if (insert.length () < 1)
{
return sentence;
}
else
{
return (insert + mid + end);
}
}

Author:  wtd [ Thu Nov 25, 2004 7:29 pm ]
Post subject: 

Using subString would help.

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#substring(int,%20int)

Author:  Hikaru79 [ Thu Nov 25, 2004 9:16 pm ]
Post subject: 

So would using indexOf. If you have the Holt Java textbook (which you should, if you're using HSA), turn to page 180 and go from there =) Good luck.

Oh, and use code tags. it makes:

System.out.println ("Use code tags!");

look like:
code:

System.out.println ("Use code tags!");

Author:  zylum [ Thu Nov 25, 2004 10:53 pm ]
Post subject: 

if i understood the question correctly, i beleive that's a one liner:

return sentence.replaceAll(word, before+word);

Author:  wtd [ Thu Nov 25, 2004 11:07 pm ]
Post subject: 

zylum wrote:
if i understood the question correctly, i beleive that's a one liner:

return sentence.replaceAll(word, before+word);


I think that for the purpose of the exercise, he has to write the logic himself.

Author:  mix12 [ Sat Nov 27, 2004 9:11 am ]
Post subject:  Thank you, but....

return sentence.replaceAll works, but...
I am only allowed to use two string built-in methods -charAt() and length()

Author:  mix12 [ Sat Nov 27, 2004 9:31 am ]
Post subject:  I got it to work a bit more, just some left

It is almost finished but i still have to find the substring within the mainstring as many times as it occurs.
I can find it once and put a perfix infront of it.
But i can to find every occurance and out a prefix infront.

This is the new return method:

private static String prefix (String sentence, String word, String before)
{
String insert = "";
int y = 0;
int x = 0;
int z = 0;
while (y != sentence.length () - 1)
{
while (insert.length () <= sentence.length ())//problem is here
{
if (word.charAt (x) != sentence.charAt (y))
{
break;
}
if (x == word.length () - 1)
{
int first = y - (word.length () - 1);
while (z != first)
{
insert = insert + sentence.charAt (z);
z++;
}
insert += before;
int a = first;
while (a != sentence.length ())
{
insert += sentence.charAt (a);
a++;
}
}
x++;
y++;
}
x = 0;
y++;
}
if (insert.length () < 1)
return sentence;
return (insert);
}


: