java笔记,从一个录入字符串删除指定字符串

来源:互联网 发布:空间数据库吴信才 编辑:程序博客网 时间:2024/06/06 03:27

原题:1.键盘录入一个源字符串由字符串变量srcStr接收 


2.键盘录入一个要删除的字符串由字符串变量delStr接收 


3.要求 
删除该字scrStr符串中的所有delStr字符串(最终的字符串中不能包含delStr),要求打印删除后的结果以及删除了几个delStr字符串 


4.代码运行打印格式: 
      请输入源字符串:java woaijava,i like jajavava i enjoy java 
      请输入要删除的字符串:java 
      控制台输出结果:源字符串中总共包含:5 个 java 删除java后的字符串为: woai,i like  i enjoy 


练习代码:

public class Test02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("源字符串");
String str = sc.nextLine();
System.out.println("删除字符串");
String s = sc.nextLine();

int count = 0;
int index = 0;
while((index = str.indexOf(s))!=-1){
str = str.replaceFirst(s, "");
count++;
}
System.out.println("删除后代码为"+str+"共删除"+count+"次");
}
}


错误1:Scanner 键盘录入用next(),导致键盘输入第一次后,无法再次输入。


错误总结:来自于百度:next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、

Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、

Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是

与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串而nextLine()方法的结束符只是Enter键,即nextLine()

方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。


错误2:while循环内用str =str.substring(index+s.length());删除后,字符串自动拼接,又出现一个java;

效果:

错误总结,依次删除,删到最后一个java,停止,后面重新组合的无法删除;

错误3:改用str = str.replace(s, "");用空格代替;replace方法第一次将所有java字符全部替换,count++。剩余字符拼接后再删除一次,count++;打印结果为



最后用:str = str.replaceFirst(s, "");

用空格,一次替换一个。



新手上路,请老司机带飞;

原创粉丝点击