PDA

View Full Version : help with string method


JaysFan31
Jun1-07, 05:03 PM
Hi. I just started Java and need some help with a method involving strings.

I need to return the index of the start of the first occurence of one string (parameter two) in another string (parameter one).

I tried this:

public static int findInString (String text1, String text2)
{
int length1 = text1.length();
int length2 = text2.length();
int index;
char x = text2.charAt(0);
for (index = 0; index < length1; index++)
{
char y = text1.charAt(index);
if (x == y)
{
text 1 = text1.substring(index, index + length2);
if (text1 == text2)
{
return index;
}
}
if (index == length1)
{
return -1;
}
}


NOTE: I cannot use the indexOf method. It's for a programming class at a local university and he won't let us use it. So I need to find an alternative way to basically do what it does.

My code compiles; it's just wrong semantically. Any help would be appreciated.

rcgldr
Jun2-07, 02:03 AM
Search indexes should be limited to length1 - length2, no point in searching past the point where there aren't enough bytes remaining in text1. If length1 < length2, then no match is possible.

Since this is just a test program, might as well create a string compare function, and then call it to compare &text1[test index], with text2, length of test2, until you get a match or increment test index > (length1-length2).

AlephZero
Jun2-07, 06:42 AM
I think the basic problem is you are trying to use text1 for two different things. When you assign text1 to a substring of itself, you delete the end of the original string. For example you won't find xyz in abxcdxyz, because you find the first x and then overwrite the long string with xcd.