c# 过滤字符串中的重复字符

有字符串"a,s,d,v,a,v",如果想去除其中重复的字符,怎么做?

下面是一个方法,用Hashtable来记录唯一字符,排除重复字符,仅供参考。

1.过滤方法:

public class OperationString
    {
        /// <summary>
        /// 过滤字符串中的重复字符
        /// </summary>
        /// <param name="str">要过滤的字符串</param>
        /// <returns>返回过滤后的字符串</returns>
        public string FilterRepetitionChar(string sourceStr)
        {
            string returnStr = string.Empty;
            string[] strList = sourceStr.Split(‘,‘);
            Hashtable ht = new Hashtable();
            foreach (string strChar in strList)
            {
                if (!ht.ContainsKey(strChar))
                {
                    ht.Add(strChar, strChar);//这里让ht的key和value值相等,不影响下面的程序
                    returnStr += strChar + ",";//字符以逗号分隔
                }
            }
            returnStr = returnStr.Trim(‘,‘);//去掉最后一个逗号
            return returnStr;
        }
    }

2.程序入口:

class Program
    {
        static void Main(string[] args)
        {
            string sourceString = "a,b,c,d,a,b";
            string newString = string.Empty;

            OperationString os = new OperationString();
            newString = os.FilterRepetitionChar(sourceString);

            Console.WriteLine("过滤前的字符串:" + sourceString);
            Console.WriteLine("----------------------------------");
            Console.WriteLine("过滤后的字符串:" + newString);

            Console.ReadKey();
        }
    }

3.运行结果:

过滤前的字符串:a,b,c,d,a,b

----------------------------------
过滤后的字符串:a,b,c,d
 
 
时间: 2024-10-14 05:33:03

c# 过滤字符串中的重复字符的相关文章

JAVA----编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符

package com.pb.demo.packclass.demo1; import java.util.HashSet; /** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 例如: 原始字符串是"abc",打印得到下列所有组合情况 "a" "b" "c" "ab" "bc" "ca" "ba" "cb"

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

1 //计算 num 的 n 次幂 2 function numPow(num, n) { 3 if (n == 1) { 4 return num; 5 } 6 return num * numPow(num, n - 1); 7 } 8 9 //计算 n 的阶乘 10 function nFactorial(n) { 11 if (n == 1) { 12 return 1; 13 } 14 return n * nFactorial(n - 1); 15 } 16 17 //斐波那契数列,

将字符串中的重复字符剔除

数据库环境:SQL SERVER2008R2 在网上看到一网友提的需求,要求把字符串列中的重复字符剔除,只保留一个.我简单的把需求描述下, 比如,有一个t表,A1列存字符串,存储的内容如下: A1 A,B,B,C C,C,D F,S,S 剔除重复字符后的结果如下: A1 A,B,C C,D F,S 思路:每一行记录生成一个行号,把字符串中的字符全部存到一列,根据行号和字符去重,然后再用FOR XML PATH合并到一行 /*数据准备*/ WITH x0 AS ( SELECT 1 AS id ,

字符串中不重复字符的最大长度计算

例如:有一个随机字符串我们需要得到这个字符串中不重复的子字符串最长的那个长度. function getMaxLength(str) { let string = '' // 返回要求的字符串 let strLength = 0 // 返回要求字符串长度 for (let i = 0; i < str.length; i++) { if (!string.includes(str.charAt(i))) { string += str.charAt(i) // 输入字符串起始位开始判断没有重复的

Java移除字符串中的重复字符

基本的两种方法 1.使用正则表达式. public String removeDuplicateChars(String str) { return str.replaceAll("(?s)(.)(?=.*\\1)", ""); } (?s) 开启单行模式 dotall 让. 号匹配任意字符 (.) 任意字符 并捕获在第一组 (?=.*\1) 这是断言, 表示后面内容将是 任意个字符加上第一组所捕获的内容 这样子,如果这整个式子匹配到,表示,第一个捕获组内容在字符串

SQL存储过程替换字符串中的重复字符

CREATE PROCEDURE [dbo].[ReplaceSameStr] @str varchar(8000)ASdeclare @ret varchar(8000),@return varchar(8000) select @str = @str select @str = @str+',' while charindex(',',@str) > 0 beginselect @ret = substring(@str,1,charindex(',',@str)-1) select @re

去除字符串中连续重复的字符

目的:把字符串中连续重复的字符赐除掉. 输入:序列:kkkhan888shioobo66 正确的返回结果应该是:hanshibo 思路解析 1 使用JAVA正则表达式,匹配出连续相同的字符或数字. 2 查找出匹配出来的序列,并取出来放到list里面 3 对list进行排序.把重复的序列排在前面.(该步可省略) 4找出连续重复的子序列,并把这些连续重复的子序列用空(字字符串)替换. 5 返回输出. code public class Test { public static void main(S

《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 &amp;&amp; 检查一个字符串是文本还是二进制

过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: import string allchars = string.maketrans('','') #all chars table def makefilter(keep): delchars = allchars.translate(allchars,keep) def thefilter(s): retu

Java 求字符串中出现频率最高字符

前段时间接触的这个题目,大体理解了,还有些小地方仍待进一步品味,暂且记下. import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; /* * 查找字符串中出现频率最高的字符 * * 主要思路:先将字符