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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 明天,你好 于 2013-5-18 17:50 编辑

public static void main(String[] args) {
                // TODO Auto-generated method stub
                Set<Character> set=new LinkedHashSet<>();
                System.out.println("请输入:");
                Scanner scanner=new Scanner(System.in);
                String str=scanner.nextLine();
                char[] ch=str.toCharArray();
                for (char c : ch) {
                        set.add(c);
                        
                }
                System.out.println(set);
        }
想输出的是一个字符串,比如:输入一个Hello Kitty  运行完之后输出的是【H,e, l, o,  , K, i, t, y】 求解怎么输出Helo Kity
尝试着重写ToString()方法了,没有成功,求解答

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

8 个回复

倒序浏览
set 自己去重复的,你怎么重写输入不管用,set里面就有这些东西
回复 使用道具 举报
import java.util.*;
class Test {
        public static void main(String[] args) {
        // TODO Auto-generated method stub
        Set<Character> set=new LinkedHashSet<>();
        System.out.println("请输入:");
        Scanner scanner=new Scanner(System.in);
        String str=scanner.nextLine();
        char[] ch=str.toCharArray();
        
        
       for(int x = 0;x <ch.length;x++){
               //提升为object  
               set.add(ch[x]);
       }
       Iterator<Character> it = set.iterator();
       while(it.hasNext()){
               //强转会Character类型
               Character c = (Character)it.next();
              
               System.out.print(c);   
       }
}这种方法应该可以

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
我是直接遍历集合 就把你的   System.out.println(set);改成
for(char c:set)
{
System.out.print(c);
   }

不知道楼主要有什么效果
回复 使用道具 举报
package cn.itcast.zg;

import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;

public class LinkedHashSetDemo {

        /*
         * 从键盘输入接收一个字符串
         * 把字符串中的重复字符去掉, 打印出来
         *
         * 例如输入: Hello World!
         * 打印: Helo Wrd!
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                @SuppressWarnings("resource")
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入字符串");
                String string = sc.nextLine();
                Set<Object> list = toList(string);
//                System.out.println(list);
                String s = toString(list);
                System.out.println(s);
               
        }

       

        private static Set<Object> toList(String string) {
                char[] arr = string.toCharArray();
                Set<Object> list = new LinkedHashSet<>();
                for (int i = 0; i < arr.length; i++) {
                        list.add(arr[i]);
                }
                return list;
        }
       
        private static String toString(Set<Object> list) {
                String s = "";
                Object[] arr1 = list.toArray();
                for (int i = 0; i < arr1.length; i++) {
                        s = s + arr1[i];
                }
                return s;
        }

}


//是这个题目么,今天老师出的...
//我把这个集合转化成数组去输出了,你看看,妹子~
回复 使用道具 举报
public static void main(String[] args) {
                 System.out.println("请输入:");
         Scanner scanner=new Scanner(System.in);
         String str = scanner.nextLine();
         String str1 = str.replaceAll("(.)\\1","$1");
         System.out.println(str1);     
}
我刚才看了下 用正则表达式也可以
回复 使用道具 举报
package cn.itcast.zg;

import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;

public class LinkedHashSetDemo {

        /*
         * 从键盘输入接收一个字符串
         * 把字符串中的重复字符去掉, 打印出来
         *
         * 例如输入: Hello World!
         * 打印: Helo Wrd!
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                @SuppressWarnings("resource")
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入字符串");
                String string = sc.nextLine();
                //将字符串转化为数组
                char[] arr = string.toCharArray();
                //创建LinkedHashSet集合, 将数组中的元素去重复,并保持输入顺序添加到集合中
                Set<Object> list = new LinkedHashSet<>();
                for (int i = 0; i < arr.length; i++) {
                        list.add(arr[i]);
                }
                //将集合转化为数组,并输出~
                String str = "";
                Object[] arr1 = list.toArray();
                for (int i = 0; i < arr1.length; i++) {
                        str = str + arr1[i];
                }
                System.out.println(str);
               
        }
       

}
//不好意思楼主....这样清楚多了,你看看~

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
Sword 金牌黑马 2013-5-18 10:44:09
8#
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
回复 使用道具 举报
如果问题已经解决了,那么大家请把帖子的类型改为“已解决”,在自己帖子的左下角点编辑,然后选择帖子的分类进行改正。{:soso_e163:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马