java中,从键盘上读入一个字符串,如何删除此字符串中所有相同的字母。如读入的字符串为good,得到gd 20

要注意此字符串不是给定的,是从键盘上读入的,我们还不知道要删除的是什么字母,必须先判断字符串重复出现的字母。... 要注意此字符串不是给定的,是从键盘上读入的,我们还不知道要删除的是什么字母,必须先判断字符串重复出现的字母。 展开
 我来答
吾拔Jm
2012-10-14 · TA获得超过374个赞
知道答主
回答量:92
采纳率:100%
帮助的人:64.5万
展开全部

这是去重的完整代码

public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print("请输入(连续相同数字将去重):");

        String temp=input.next();

        show(temp);

    }

    //去重方法

    public static void show(String str){

        char[] tempList=str.toCharArray();   //将得到的String型字符串转变为Char型字符

        for (int i = 0; i < tempList.length-1; i++) {     //循环数组

             if (tempList[i]==tempList[i+1]) {               //判断两个数是否相等,如果相等则去掉

                tempList[i]=0;                                       //如果相邻两数重复了  则为0 由于char是基本

                tempList[i+1]=0;                                   //类型,所以初始值为0,不过并不影响效果


            }

        }

        for (int i = 0; i < tempList.length; i++) {   

            if (tempList[i]!=0) {                                  //如果两数都不为0  则输出


                System.out.print(tempList[i]);

            }

        }

    } 


令附上效果:

三千手头欢r
2012-10-14 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:121万
展开全部
读入一个字符串
将字符串转化为字符数组
for(i=0; i<string.length; i++) //遍历整个字符数组,求出相同字母

for(j=i+1; j<string.length; j++)

if(c[i]==c[j]) c1[k++] = c[i]; //记录重复的字母(会有重复记录,不过没关系)

for(int i=0; i<k; i++){
string = string.replaceAll("c1[i]",""); //用replaceAll函数将重复的字母替换为空
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangw7818
2012-10-14
知道答主
回答量:27
采纳率:0%
帮助的人:12.8万
展开全部
你试一下,看是合你的要求
System.out.println("请输入字符串!");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String input = br.readLine();
boolean flag = false;
for(int i=0;i<input.length();i++){
int num = input.charAt(i);
if(!(num>=65 && num<90) && !(num>=97 && num<=122)){
flag = true;
}
}
if(flag){
System.out.println("请输入有效字符");

}else{
if(input.length()==0){
System.out.println("字符不能为空!");
}else{
List strList = new ArrayList();
for(int j=0;j<input.length();j++){
for(int n=0;n<input.length();n++){
if(String.valueOf(input.charAt(j)).equals(String.valueOf(input.charAt(n))) && j!=n){
strList.add(String.valueOf(input.charAt(j)));
}
}
}
for(int m=0;m<strList.size();m++){
input = input.replaceAll(String.valueOf(strList.get(m)), "");
}
System.out.println("处理后的字符串为"+input);
}
}
} catch (Exception e) {
e.printStackTrace();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式