拜求大神解惑,帮我加下注释好吗??看看题目中的疑问...
/*【程序49】
题目:计算字符串中子串出现的次数 */
import java.util.*;
public class Test49{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str=sc.next();
System.out.print("请输入要统计的子串:");
String sub=sc.next();
char[] c1;
char[] c2;
c1=str.toCharArray();
c2=sub.toCharArray();
int count=0;
int t;
int m=str.length()-sub.length();
if(m<0)
System.out.println("字符串中不含"+sub+"子串");
else{
for(int i=0;i<str.length();i++)
{
t=0;
while(t<sub.length()&&c2[t]==c1[i+t]) //c2[t]==c1[i+t] 这句怎么理解??
{
t++;
}
if(t==sub.length()) count++;
}
}
System.out.println(sub+"在"+str+"中出现的次数是:"+count);
}
}
------解决方案--------------------t是指针。指向sub。sub和str逐一比较
------解决方案--------------------t是sub中第几个字符,i是str中第几个字符
------解决方案--------------------i是原串的起始位置,t是偏移量。对于原串字符为src.charAt(i+t),对于子串字符为sub.charAt(t)
------解决方案-------------------- c1//一个字符串
str//一个字符串
c2//要统计的子串
sub//要统计的子串
for(int i=0;i<str.length();i++) //i=0->一个字符串的長度
{
t=0;
while(t<sub.length()&&c2[t]==c1[i+t]) //t<要统计的子串的長度&& 要统计的子串
跟一个字符串逐一比较, t是sub中第几个字符,i+t是str中第几个字符
{
t++;
}
if(t==sub.length()) count++;
}