I'm trying to find if user input s contains the second user input s1 using for loops and if statements. I only want to use methods .charAt() and .length and not .indexOf to find if s1 is within s. Once I find whether s contains s1 or not, I either want to return .charAt() where s1 begins in s, or return -1 if s1 doesn't occur at all inside s.
For example, s = abcdefghi & s1 = def, it will return 3.
This is my code so far:
It either returns 0 or -1
package javaapplication5;
import java.util.Scanner;
class myStrings {
String s, s1;
void setMyStrings(String str, String str1) {
s = str;
s1 = str1;
}
int find() {
int i, j;
int r = -1;
char ns = s1.charAt(0);
int sp;
int count = 1;
for (i = 0; i < s.length(); i++){
if (s.charAt(i) == ns) {
sp = i;//starting point
for (j = i+1; j < s1.length(); j++) {
ns += 1;
if (s.charAt(j) == ns){
j++;
count++;
}
if (count == s1.length())
r = sp;
}
}
}
System.out.println(r);
return r;
}
}
public class JavaApplication5 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
myStrings setS = new myStrings();
String s, s1;
System.out.print("Enter s:");
s = in.nextLine();
System.out.print("Enter s1:");
s1 = in.nextLine();
setS.setMyStrings(s1, s1);
setS.find();
}
}