/*查找一个字符串2在字符串1中第一次出现的位置
比如:输入 asdfwd df 输出为 3
输入 hhff hf 输出为 2
public class SearchChar {
public static void main(String[] args){
int count=0;//标记是否完全相同,如果完全相同,则加1,否则为0
int log=0;//标记已有多少位相同
int x=0;//标记完全匹配时,这个字母在第一个字符串中的位置
//接收两个字符串
Scanner input=new Scanner(System.in);
String str=input.next();
String str1=input.next();
//将字符串转换为字符数组
char[] ch=str.toCharArray();
char[] ch1=str1.toCharArray();
//重点来了!!!进行字符数组的比较
loop:for(int n=0;n<str.length();){//循环长数组
for(int i=0;i<str1.length();i++){//循环短数组
if(ch1[i]==ch[n]){//如果两个字符相同,则log加1,
log++;
if(log==1){//并标记下此字符在长字符数组内的位置
x=n;
}
if(log==str1.length()){//如果完全匹配,则,count加1,log置为0,跳出内层循环,并继续比下面的
count++;
log=0;
break loop;//如果是求题上的要求,即求第一次完全匹配时,第一个匹配的位置,则在此跳出外层循环
//break; //如果是求长字符串中一共含有多少个短字符串,则只跳出内层循环
}
}else if(log!=0){//如果之前的有相同的,但是当前位不匹配,
n=x; //那么将长字符数组的位置置为第一个相同的字母位置, 长字符串hhff 短字符串 hf 不进行该操作上述两个字符串就要计算错误
x=0; //将标记第一个相同位置的标记,置为0,
log=0; //连续相同字母数的标记置为0
break; //并跳出内层循环,即从短数组的第一个元素开始
}else{ //如果 不相同,则跳出内循环,
x=0; //相同的第一个字符标记为0
break;
}
if(n<str.length()-1){//判断外层循环是否越界, 长字符串asdfg 短字符串 sdfgh 不判断上述的就会越界
n++;
}else{
break;
}
}
n++;
}
if(count>0){//判断完全匹配次数
System.out.println(x+1);//有过匹配,
//System.out.println(count);//输出的是完全相同的次数
}else{
System.out.println(x);//没有过匹配,
//System.out.println(count);//输出的是完全相同的次数
}
}
}
比如:输入 asdfwd df 输出为 3
输入 hhff hf 输出为 2
*/
public class SearchChar {
public static void main(String[] args){
int count=0;//标记是否完全相同,如果完全相同,则加1,否则为0
int log=0;//标记已有多少位相同
int x=0;//标记完全匹配时,这个字母在第一个字符串中的位置
//接收两个字符串
Scanner input=new Scanner(System.in);
String str=input.next();
String str1=input.next();
//将字符串转换为字符数组
char[] ch=str.toCharArray();
char[] ch1=str1.toCharArray();
//重点来了!!!进行字符数组的比较
loop:for(int n=0;n<str.length();){//循环长数组
for(int i=0;i<str1.length();i++){//循环短数组
if(ch1[i]==ch[n]){//如果两个字符相同,则log加1,
log++;
if(log==1){//并标记下此字符在长字符数组内的位置
x=n;
}
if(log==str1.length()){//如果完全匹配,则,count加1,log置为0,跳出内层循环,并继续比下面的
count++;
log=0;
break loop;//如果是求题上的要求,即求第一次完全匹配时,第一个匹配的位置,则在此跳出外层循环
//break; //如果是求长字符串中一共含有多少个短字符串,则只跳出内层循环
}
}else if(log!=0){//如果之前的有相同的,但是当前位不匹配,
n=x; //那么将长字符数组的位置置为第一个相同的字母位置, 长字符串hhff 短字符串 hf 不进行该操作上述两个字符串就要计算错误
x=0; //将标记第一个相同位置的标记,置为0,
log=0; //连续相同字母数的标记置为0
break; //并跳出内层循环,即从短数组的第一个元素开始
}else{ //如果 不相同,则跳出内循环,
x=0; //相同的第一个字符标记为0
break;
}
if(n<str.length()-1){//判断外层循环是否越界, 长字符串asdfg 短字符串 sdfgh 不判断上述的就会越界
n++;
}else{
break;
}
}
n++;
}
if(count>0){//判断完全匹配次数
System.out.println(x+1);//有过匹配,
//System.out.println(count);//输出的是完全相同的次数
}else{
System.out.println(x);//没有过匹配,
//System.out.println(count);//输出的是完全相同的次数
}
}
}