• 华为-on练习--重复的字符过滤


    称号:

    1. 请写一个字符串过滤程序,如果使用多个相同的字符出现在字符串中,字符首次出现在非过滤,。

       

    2. 比方字符串“abacacde”过滤结果为“abcde”。
    1. 演示样例  
    2. 输入:“deefd”        输出:“def” 
    3. 输入:“afafafaf”     输出:“af” 
    4. 输入:“pppppppp”     输出:“p”  
    分析: 看到这样的类似的同样字符过滤。使用java的话我们第一个想到的应该就是set这个集合,这个集合可以有效的处理掉反复的元素。 接下来就是顺序问题了,这里是保持字符原有的顺序,所以我们得选用一个实现set的类来存储这些字符。 没错LinkedHashSet可以非常好的解决我们的问题。接下来就是写程序的事了


    代码例如以下:


    package com.wenj.test;

    import java.util.Iterator;
    import java.util.LinkedHashSet;
    import java.util.Set;

    /**
     * 题目:

        请编写一个字符串过滤程序。若字符串中出现多个同样的字符,将非首次出现的字符过滤掉。
        比方字符串“abacacde”过滤结果为“abcde”。

        演示样例  
        输入:“deefd”        输出:“def”
        输入:“afafafaf”     输出:“af”
        输入:“pppppppp”     输出:“p”   
     * @author wenj91-PC
     *
     */
    public class TestStrFilter {

        public static void main(String args[]){
            String strIn = "pppppppp";
            TestStrFilter ts = new TestStrFilter();
            System.out.println(ts.strFilter(strIn));
        }
        
        public String strFilter(String strIn){
            String strTemp = strIn;
            char[] str2C = strTemp.toCharArray();
            
            Set<Character> cs = new LinkedHashSet<Character>();
            for(int i=0; i<str2C.length; i++){//利用set实现字符过滤
                cs.add(str2C[i]);
            }
            
            String temp = "";
            for(Iterator<Character> it=cs.iterator(); it.hasNext(); ){//又一次组合字符串
                temp += it.next();
            }
            
            return temp;
        }
    }


    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    一些简单的问题
    WebRTC的 windows 7 环境搭建
    HTML常用标签
    参考C#编程规范
    C#窗体调用(转载)
    java中的小知识(不断更行中。。。。。)
    CF1483E Vabank 题解
    CF755G PolandBall and Many Other Balls 题解
    CF1483D Useful Edges 题解
    CF1368F Lamps on a Circle 题解
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4848909.html
Copyright © 2020-2023  润新知