A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 我感觉优势很大 于 2014-1-15 10:34 编辑

package com.itheima;

import java.util.Scanner;

/**
* 数组去重
       例如:
       原始数组是{4,2,4,6,1,2,4,7,8}
        得到结果{4,2,6,1,7,8}
* @author Sandro
*
*/

public class Test5 {
        public static void main(String args[]){
                Scanner reader=new Scanner(System.in);
                int j,m;
                char t;
                String a;
                a=new String(reader.nextLine());//从键盘输入一串数字
                char s[]=a.toCharArray();//将数字转化为数组
                int d=a.length()-1;
                int c=a.length();
                for(j=0;j<d;j++)//进行a.length-1次循环,实现a.length-1趟比较
                        for(m=j+1;m<c;m++)//在第n趟中进行a.length-n次比较,每次比较为第n个数分别与这个数后面的所有数比较
                                while(s[j]==s[m]){
                                        t=s[d];
                                        s[m]=t;
                                        s[d]=0;
                                        c--;
                                        d--;
                                }//将相同的元素移至最后并赋值为0
                for(int n=0;n<c;n++){
                System.out.println(s[n]);
                }//每交换一次就将最后一个元素省略输出(用while就能正常运行,用if就会运行失败,不知道什么原因)
        }
}

//这时输入“1111”将会输出“1”,而把while改成if之后输入“1111”则会输出“11”,谁能帮帮我{:soso_e154:}太感谢了

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

1 个回复

倒序浏览
好吧,我已经懂了。。。论坛真方便,有个“相关帖子”,点进去就明白了{:soso_e117:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马