2 sinat 34794545 sinat_34794545 于 2016.04.26 15:00 提问

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

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);

}

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

3个回答

w172087242
w172087242   Ds   Rxr 2016.04.26 17:55

缺失复杂了。
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);

}
w172087242
w172087242 如果有帮助的话,希望能结帖
一年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.04.27 00:11

c 删除一个字符串中重复的字符
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.09.15 19:15

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。
一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
C语言:从键盘输入一个字符串,以感叹号!作为结束标志,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束.
请编写一个方法,将字符串中的空格全部替换为“ ”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
输入一个字符串,分别统计出包含的英文字母、数字、空格和其他字符的个数
1.2输入一个字符串,判断其中字母、数字、其他字符的个数
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输入到一个磁盘文件“test”中保存。输入的字符串以”!”结束。