当前页面: 开发资料首页 → J2SE 专题 → 写一个delString(String s1,String s2)
写一个delString(String s1,String s2)
摘要: 写一个delString(String s1,String s2)
有两个String s1;String s2;从s1中查找出s2,并删除。返回删除后的s1;
写一个delString(String s1,String s2)
方法, 不能用API
0 0
不能用API什么意思啊?????
那用C编写?!?!
不论什么语言,API是库函数, #INCLUDE IMPORT 这些
不过我知道C语言容易写一些吧
我也想知道怎么做!~不会写代码!~
s2是s1的子字符串,s2在s1中不断地匹配,向前自增1
if (找到)执行delete(s2)
KMP算法......
不用API?
String 不是API吗?
做个记号 ··回去写代码去··
还没想出来要怎么个写法呢,哪位高手指点一下!
不能用api,我想指的就是不能用 比如java里面的 indexOf,charAt 之类的东东吧。
kmp算法!
这个是正解
连substring也不能用?
谁能写一下代码啊,
/**
* @author mengfanpp
*
*/
public class StringDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "I am a student !";
String s2 = "student";
System.out.println(delString(s1, s2));
}
private static String delString(String s1, String s2) {
String tmp = "";
for (int i = 0, len1 = s1.length(); i < len1; i++) {
for (int m = 0, len2 = s2.length(); m < len2; m++, i++) {
//System.out.println("比较:"+s2.charAt(m)+":"+ s1.charAt(i));
if (s2.charAt(m) != s1.charAt(i)) {
tmp += s1.charAt(i);
//System.out.println(tmp);
break;
}
}
}
return tmp;
}
}
public static void main(String[] args) {
String s1="abcdefg";
String s2="bc";
String s3=s1.replaceAll(s2,"");
System.out.println(s3);
}
输出:adefg
不用API,用裁纸刀和胶水?
不知道 ,
这样有什么意思?
mark
UP下`
up
虽然有人给出答案了,不过楼主要的可能是mengfanpp(梦凡) 写的,很原始的,呵呵
循环查找就可以了阿
路过 关注
UP 梦凡
/**
* @author mengfanpp
*
*/
public class StringDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "I am a student !";
String s2 = "student";
System.out.println(delString(s1, s2));
}
private static String delString(String s1, String s2) {
String tmp = "";
for (int i = 0, len1 = s1.length(); i < len1; i++) {
for (int m = 0, len2 = s2.length(); m < len2; m++, i++) {
//System.out.println("比较:"+s2.charAt(m)+":"+ s1.charAt(i));
if (s2.charAt(m) != s1.charAt(i)) {
tmp += s1.charAt(i);
//System.out.println(tmp);
break;
}
}
}
return tmp;
}
}
这个明显有BUG
大家用这个试试就知了
"abcdefgb","bc"
做个记号先,晚上做做看
private static String getDelString(String str1, String str2)
{
int strlen1 = str1.length();
int strlen2 = str2.length();
String str;
for(int i=0; i
{
str = str1.substring(i,i+strlen2);
if(str.equals(str2))
{
str = str1.substring(0,i)+str1.substring (i+strlen2,strlen1);
return str;
}
}
return str1;
}
用到了String 类中的方法,大家看看算不算用到API?