去掉字符串中的相同字符,但,号不去掉,这个用正则能实现吗?正则学的不精,虚心求教~

belldandy11 2007-05-21 03:05:06

1,2,3,2,3,4,5,1 字符串里重复的数字只会出现一次
替换成
1,2,3,4,5 1-5的顺序可以不考虑

大家帮忙想想
...全文
309 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
belldandy11 2007-05-21
  • 打赏
  • 举报
回复
测试通过 谢了
-过客- 2007-05-21
  • 打赏
  • 举报
回复
2003里用ArrayList

List<string> list = new List<string>();
替换为
ArrayList arr = new ArrayList();
后面的list替换为arr就行了,其它全都一样
belldandy11 2007-05-21
  • 打赏
  • 举报
回复
05多好啊
treeview 泛型什么的多好用

可惜现在我的机子太烂了 跑03都勉强 等10.1买了新的再说了....
chuxue1342 2007-05-21
  • 打赏
  • 举报
回复
不错!
belldandy11 2007-05-21
  • 打赏
  • 举报
回复
我用的是2003................
想弄05好久了
但是..................
反正有点郁闷

-过客- 2007-05-21
  • 打赏
  • 举报
回复
看楼主所给例子,数字都是一位的,那是说可能出现的数字也就0~9,最简单的就是IndexOf了,用不着循环-_-#

如果可能有两位以上的数字,用正则可以做到,但实现的机制其实也用到了循环,所以还不如直接用泛型了

正则的方法

string test = "1,23,3,23,3,4,5,1";
string temp = Regex.Replace(test, @"\d+", new MatchEvaluator(expReplace));
string result = Regex.Replace(temp, ",+", ",");
result = result.TrimEnd(',');

List<string> list = new List<string>();
private string expReplace(Match m)
{
if (list.Contains(m.Value))
{
return m.Value.Replace(m.Value, "");
}
else
{
list.Add(m.Value);
return m.Value;
}
}

非正则的方法

string str = "1,23,3,23,3,4,5,1";
string[] ss = str.Split(',');

List<string> list = new List<string>();
foreach (string a in ss)
{
if (!list.Contains(a))
{
list.Add(a);
list.Add(",");
}
}

string resultStr = "";
foreach (string s in list)
{
resultStr += s;
}
resultStr = resultStr.TrimEnd(',');
babyrockxray 2007-05-21
  • 打赏
  • 举报
回复
string s = "1,2,2,3,2,4,6,1,5";
string[] arr = s.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
Array.Sort<string>(arr);

for (int i = 0; i < arr.Length; i++)
{
int j = 0;
for (j = i; j < arr.Length && arr[i] == arr[j]; j++)
{
if (i != j)
{
arr[j] = string.Empty;
}
}
i = j - 1;
}
arr = Array.FindAll<string>(arr,delegate(string tmp) { return !string.IsNullOrEmpty(tmp); });
babyrockxray 2007-05-21
  • 打赏
  • 举报
回复
10000个字符,数据量很少,基本忽略
babyrockxray 2007-05-21
  • 打赏
  • 举报
回复
先排序,再去除重复的,效率比较高
belldandy11 2007-05-21
  • 打赏
  • 举报
回复
先 split(',')掉~逗号

C# 冒泡排序``
加 一一对比`~ 如果数字相同 则去掉其中一个数字
---------------------------------------------------
这个我清楚
就是想问下有没有更好的方法 冒泡的效率实在是.........
xuyiazl 2007-05-21
  • 打赏
  • 举报
回复
得出的结果就可以是依次排序的`结果
xuyiazl 2007-05-21
  • 打赏
  • 举报
回复
先 split(',')掉~逗号

C# 冒泡排序``
加 一一对比`~ 如果数字相同 则去掉其中一个数字
belldandy11 2007-05-21
  • 打赏
  • 举报
回复
呵呵
可能是不能实现,就是钻牛角了,实在不想用for
因为如果字符串是 1,2,......................
比方说里面有10000个字符,用for循环判断去掉重复字符会不会很耗时间
belldandy11 2007-05-21
  • 打赏
  • 举报
回复
我想实现的是
字符串 1,2,3,4,5
字符串 2,4,6 2个字符串中重复的数字只会出现一次
用某种方法合并以后能够 得到 1,2,3,4,5,6 这样的字符串, 数字的顺序可以不考虑
shadow841112 2007-05-21
  • 打赏
  • 举报
回复
正则实现???。。。。。。。。。。。。。。。。。。。。。

太震撼了吧
belldandy11 2007-05-21
  • 打赏
  • 举报
回复
大家往正则方面想,
如果是split(',')然后在for判断就免了...
civyliu 2007-05-21
  • 打赏
  • 举报
回复
正则实现?在程序里实现不可以吗?
内容概要:本文围绕“非线性流量的数据驱动Koopman模型预测控制研究”展开,提出一种基于数据驱动的Koopman算子理论方法,用于构建非线性系统的线性化状态空间模型,并结合模型预测控制(MPC)实现对复杂非线性系统的高效控制。研究通过引入扩展动态模态分解(EDMD)等观测函数,将非线性动力映射至高维特征空间,在该空间实现近似线性化表征,进而融合线性MPC框架进行优化求解。全文系统阐述了Koopman算子的数基础、隐式线性化机制及在非线性流量控制的建模流程,并通过Matlab代码完成了算法实现与仿真实验,验证了该方法在处理无确物理模型、强非线性、时变动态系统的有效性与鲁棒性,尤其适用于工业流程控制、能源系统调度等实际工程场景。; 适合人群:具备自动控制理论、非线性系统分析基础,熟悉Matlab编程,从事控制工程、系统辨识、智能优化、能源系统建模等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于难以建立确数模型的复杂非线性系统(如流体动力系统、电力电子系统、机器人动力等)的建模与实时控制;②实现数据驱动下的模型预测控制,提升系统响应速度与控制度;③为先进控制策略(如MPC)提供一种可行的线性化建模范式,推动现代控制理论与数据科、机器习的深度融合。; 阅读建议:建议读者结合提供的Matlab代码深入理解Koopman方法的具体实现过程,重点关注观测函数构造、核函数选择、矩阵逼近、降维处理及MPC控制器设计等关键技术环节,并尝试将其迁移至其他非线性系统进行复现实验与性能对比,以全面掌握其适用范围与局限性。
内容概要:本文详细介绍了一种基于Simulink的光伏储能单相逆变器并网仿真模型,系统涵盖了光伏阵列、储能单元、DC-AC单相逆变器及并网接口的完整结构,重点实现了储能环节的能量管理与逆变器并网控制策略的建模仿真。通过Simulink平台构建系统模型,验证了逆变器输出电能质量、并网稳定性以及控制系统的动态响应性能,采用SPWM调制、PI闭环控制等关键技术,确保并网电流与电网电压同频同相,满足并网电能质量要求。该模型不仅可用于分布式能源系统的仿真研究,还可作为新能源并网技术的教与工程实践工具。; 适合人群:电气工程、自动化、新能源科与工程等相关专业的高校本科生、研究生、科研人员,以及从事光伏发电系统设计、储能控制与并网技术研发的工程技术人员。; 使用场景及目标:①深入理解光伏储能系统能量转换、存储与并网控制的整体工作原理;②支持课程设计、毕业设计或科研项目对单相逆变器控制策略(如SPWM、PI调节、锁相技术等)的仿真验证与参数优化;③为后续研究更复杂的控制算法(如MPPT、低电压穿越、谐波抑制等)提供可扩展的仿真基础平台。; 阅读建议:建议结合MATLAB/Simulink环境动手搭建与调试模型,逐步理解各模块(如光伏建模、储能充放电控制、逆变器驱动、锁相环、PI调节器等)的功能与交互关系,重点关注控制系统的设计逻辑与参数整定过程,并可通过修改负载条件或电网参数测试系统鲁棒性,为进一步拓展至三相系统或多机并网场景奠定基础。

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧