Tag: 字符串

测试字符串中重复的字符

我正在用字符串做一些工作,我有一个场景,我需要确定一个字符串(通常是一个小的<10个字符)是否包含重复的字符。 `ABCDE` // does not contain repeats `AABCD` // does contain repeats, ie A is repeated 我可以循环遍历string.ToCharArray()并测试char []中每个其他角色的每个角色,但我觉得我错过了一些明显的东西….也许我只需要咖啡。 有人可以帮忙吗? 编辑: 字符串将被排序,因此顺序并不重要,因此ABCDA => AABCD 重复的频率也很重要,所以我需要知道重复是双重还是三重等。

Seconds CountDown计时器

我有一个int值为60的lblCountdown。我想让lblCountDown的int值减少几秒,直到达到0。 这是我到目前为止: private int counter = 60; private void button1_Click(object sender, EventArgs e) { int counter = 60; timer1 = new Timer(); timer1.Tick += new EventHandler(timer1_Tick); timer1.Interval = 1000; // 1 second timer1.Start(); label1.Text = counter.ToString(); } private void timer1_Tick(object sender, EventArgs e) { counter–; if (counter == 0) timer1.Stop(); label1.Text = counter.ToString(); }

C#中的手动字符串拆分

在我的代码中,我试图操纵一个字符串: Some text – 04.09.1996 – 40-18 我想把它分成三个子串: Some text , 04.09.1996和40-18 。 当我使用带有连字符的Split方法作为分隔符时,返回值是一个包含四个字符串的数组: Some text , 04.09.1996和18 。 如何使此代码如上所述工作? 谢谢。

C#上的价格/现金/货币文本框

我有一个困扰我一段时间的问题。 我尝试了一些解决方案,但它们没有用。 我有一个用于现金输入的文本框(例如999,99美元)。 但是我需要自动输入“,”和“。” 正确显示值。 我试过两个解决方案。 其中之一是: private void tx_ValorUnidade_TextChanged(object sender, EventArgs e) { string value = tx_ValorUnidade.Text.Replace(“,”, “”).Replace(“R$”, “”); decimal ul; //Check we are indeed handling a number if (decimal.TryParse(value, out ul)) { //Unsub the event so we don’t enter a loop tx_ValorUnidade.TextChanged -= tx_ValorUnidade_TextChanged; //Format the text as currency tx_ValorUnidade.Text = string.Format(System.Globalization.CultureInfo.CreateSpecificCulture(“pt-BR”), “{0:C2}”, […]

Rabin Karp字符串匹配算法

我在网站的论坛上看过这个Rabin Karp字符串匹配算法,我有兴趣尝试实现它,但我想知道如果有人能告诉我为什么变量ulong Q和ulong D分别是100007和256:S ? 这些价值观带有什么意义? static void Main(string[] args) { string A = “String that contains a pattern.”; string B = “pattern”; ulong siga = 0; ulong sigb = 0; ulong Q = 100007; ulong D = 256; for (int i = 0; i >{0}<<{1}", A.Substring(0, B.Length), A.Substring(B.Length))); return; } ulong pow = 1; […]

String.comparison性能(带修剪)

我需要做很多高性能的不区分大小写的字符串比较,并意识到我这样做.ToLower()。Trim()真的很愚蠢,因为所有的新字符串都被分配了 所以我挖了一点,这种方式似乎更可取: String.Compare(txt1,txt2, StringComparison.OrdinalIgnoreCase) 这里唯一的问题是我想忽略前导或尾随空格,即Trim(),但如果我使用Trim,我对字符串分配也有同样的问题。 我想我可以检查每个字符串,看看它是StartsWith(“”)还是EndsWith(“”)然后才修剪。 要么指出索引,要么计算每个字符串的长度并传递给string.Compare覆盖 public static int Compare ( string strA, int indexA, string strB, int indexB, int length, StringComparison comparisonType ) 但是这看起来相当混乱,如果我不为两个字符串上的尾随和前导空白的每个组合制作一个非常大的if-else语句,我可能不得不使用一些整数…所以任何优雅解决方案的想法? 这是我目前的提议: public bool IsEqual(string a, string b) { return (string.Compare(a, b, StringComparison.OrdinalIgnoreCase) == 0); } public bool IsTrimEqual(string a, string b) { if (Math.Abs(a.Length- b.Length) > 2 ) // […]

如何确定字符串是否是有效的变量名?

我正在寻找一种快速方式(在C#中)来确定字符串是否是有效的变量名。 我的第一个直觉是掀起一些正则表达式,但我想知道是否有更好的方法来做到这一点。 就像某种秘密方法隐藏在一个名为IsThisAValidVariableName(字符串名称)的地方,或其他一些光滑的方法来做到这一点,不容易出现由于缺乏正则表达能力而可能出现的错误。

如何获取整数并删除C#中的所有字符串

如何删除字符串并仅获取整数? 我有一个字符串(01 – ABCDEFG) 我只需要获得(01)

在C#中确定未修剪字符串是否为空的最有效方法是什么?

我有一个字符串,周围可能有空白字符,我想检查它是否基本上是空的。 有很多方法可以做到这一点: 1 if (myString.Trim().Length == 0) 2 if (myString.Trim() == “”) 3 if (myString.Trim().Equals(“”)) 4 if (myString.Trim() == String.Empty) 5 if (myString.Trim().Equals(String.Empty)) 我知道这通常是一个过早优化的明显案例,但我很好奇,并且有可能做到这一点足以产生性能影响。 那么这些中最有效的方法是哪一种? 有没有更好的方法我没想过? 编辑:此问题的访问者注意事项: 对这个问题进行了一些非常详细的调查 – 特别是来自Andy和Jon Skeet。 如果你在搜索某些内容时偶然发现了这个问题,那么至少阅读Andy和Jon的post是非常值得的。 似乎有一些非常有效的方法, 最有效的方法取决于我需要处理的字符串的内容。 如果我无法预测字符串(在我的情况下我不能预测),Jon的IsEmptyOrWhiteSpace方法通常会更快。 谢谢大家的意见。 我将选择安迪的答案作为“正确”的答案仅仅是因为他应该为他所付出的努力赢得声誉,而Jon已经拥有了十亿美元的声誉。

使用InvariantCultureIgnoreCase而不是ToUpper进行不区分大小写的字符串比较

在这个页面上 ,一位评论者写道: 不要使用.ToUpper来确保比较字符串不区分大小写。 而不是这个: type.Name.ToUpper() == (controllerName.ToUpper() + “Controller”.ToUpper())) 做这个: type.Name.Equals(controllerName + “Controller”, StringComparison.InvariantCultureIgnoreCase) 为什么这种方式更受欢迎?