字符串匹配
字符串匹配可以用到蛮力法。
对于字符串s和t,若t是s的子串,返回t在s中的位置(t的首字符在s中的下标),否则返回-1.
采用的是穷举法,从s的第一个字符开始查找,看t是否会出现。
下面直接看程序
package HuiWenStrings;
//有两个字符串s,t(其中t是s字符串的子字符串),求t字符串在s字符串中出现的位置。
//并输出
public class HuiWen {
public static int disAdree(String s,String t) {
int i =0;
int j = 0;
while(i<s.length()&&j<t.length()) {
if(s.toCharArray()[i]==t.toCharArray()[j]) {
i++; //比较两个字符相同时
j++;
}else { //比较两个字符不相同时
i = i-j+1; //i回退到原来i的下一个位置
j = 0; //j回退到0
}
}
if(j==t.length()) { //t的字符串比较完毕
return i-j; //t是s的子串,返回
}else
return -1; //找不到就输出-1
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
String s ="a,b,c,d";
String t = "b,c,d";
HuiWen huiwen =new HuiWen();
int a = huiwen.disAdree(s, t);
System.out.println(a);
}
}
有两个字符串s和t,设计一个算法,求t在s中出现的次数。
package 回文字符串;
//有两个字符串s和t,设计一个算法,求t在s中出现的次数。
public class HUIWenCount {
public static int disAdree(String s,String t) {
int i =0;
int j = 0;
int num = 0;
while(i<s.length()&&j<t.length()) {
if(s.toCharArray()[i]==t.toCharArray()[j]) {
i++;
j++;
}else {
i = i-j+1;
j = 0;
}
}
if(j==t.length()) {
num++;
j= 0;
}
return num;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
String s ="a,b,c,d";
String t = "b,c,d";
HUIWenCount huiwencount =new HUIWenCount();
int a = huiwencount.disAdree(s, t);
System.out.println(a);
}
}