Find Index of String Occurrence - Java Method Help

  • Context: Java 
  • Thread starter Thread starter JaysFan31
  • Start date Start date
  • Tags Tags
    Method String
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 2K views
JaysFan31
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 occurrence of one string (parameter two) in another string (parameter one).

I tried this:
Code:
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.
 
Physics news on Phys.org
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).
 
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.
 
Last edited: