站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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?


↑返回目录
前一篇: 如何产生20-9999之间的随机数
后一篇: 请问如何获得Shell的输出