从键盘输入一个字符串和一个字符,从字符串中删除全部该字符(如果是字母,大小写都删除)

package lab;

/**
*

  • @author Administrator */ import java.util.Scanner;

public class Lab {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    Scanner scan = new Scanner(System.in);
    System.out.print("请输入原字符串:");
    String s = scan.nextLine();//字符串
    StringBuffer sNew = new StringBuffer(s);//把输入的字符串类型从String转化为StringBuffer

    System.out.print("请输入待删除字符:");
    char a = scan.nextLine().charAt(0);//字符

    for (int i = 0; i < s.length(); ++i) {
        if (a >= 'a' && a <= 'z' && a == s.charAt(i)) {
            String str = s.replace((char) (a - 32), a);//把满足要求的替换成a,前面已经定义过s,所以定义str,我认为两者相同,字符串
            sNew = new StringBuffer(str);//把str转化成StringBuffer类,前面已经定义过sNew类型,字符串
        }
        if (a >= 'A' && a <= 'Z' && a == s.charAt(i)) {
            String str = s.replace((char) (a + 32), a);//满足要求的替换成a,字符串
            sNew = new StringBuffer(str);//把str转化成StringBuffer类,字符串
        }
    }
    StringBuffer s1 = new StringBuffer("");//初始化定义StringBuffer类s1

    for (int i = 0; i < s.length(); ++i) {//sNew,s1

        if (sNew.charAt(i) != a) {
            s1.append(sNew.charAt(i));
        }
    }

    System.out.println("删除后的结果:" + s1);
    System.out.println("共删除"+(sNew.length()-s1.length())+"个字符"+a);

}

}
是不是复杂化了,写的时候感觉混乱。

缺失复杂了。
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.print("请输入原字符串:");
String s = scan.nextLine();//字符串
System.out.print("请输入待删除字符:");
String ss = scan.nextLine();
if(ss.length()>1) ss = ss.substring(0, 1);
String result = s.replaceAll(ss.toLowerCase()+"|"+ss.toUpperCase(), "");
System.out.println("删除后的结果:" + result);
System.out.println("共删除"+(s.length()-result.length())+"个字符"+ss);

}

调用String方法的replcaeAll即可全部替换