Java Find Index of String Occurrence - Java Method Help

  • Thread starter Thread starter JaysFan31
  • Start date Start date
  • Tags Tags
    Method String
AI Thread Summary
The discussion revolves around a Java programming challenge where the goal is to find the index of the first occurrence of one string within another without using the built-in indexOf method. The provided code attempts to achieve this but contains logical errors. Key points include the need to limit search indexes to avoid unnecessary checks beyond the point where a match is impossible, specifically when the length of the first string is less than the second. The suggestion is made to create a separate string comparison function to compare segments of the first string with the second string. A critical issue identified is the misuse of the original string variable, which is overwritten during substring operations, leading to incorrect results. The discussion emphasizes the importance of maintaining the integrity of the original string while searching for matches.
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 occurence 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.
 
Technology 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:
Thread 'Is this public key encryption?'
I've tried to intuit public key encryption but never quite managed. But this seems to wrap it up in a bow. This seems to be a very elegant way of transmitting a message publicly that only the sender and receiver can decipher. Is this how PKE works? No, it cant be. In the above case, the requester knows the target's "secret" key - because they have his ID, and therefore knows his birthdate.
Thread 'Project Documentation'
Trying to package up a small bank account manager project that I have been tempering on for a while. One that is certainly worth something to me. Although I have created methods to whip up quick documents with all fields and properties. I would like something better to reference in order to express the mechanical functions. It is unclear to me about any standardized format for code documentation that exists. I have tried object orientated diagrams with shapes to try and express the...
Back
Top