Tag: string

比较两个字符串及其大小写符号的最佳方法

假设我有2个字符串。第一个字符串是x =“abc”,第二个字符串是y =“ABC”。当我在c#中写下代码: if(x == y) 要么 if(x.Equals(y)) 返回值为true。如何查看大小写?

“aaaa”.StartsWith(“aaa”)返回false

如果这不是一个错误,那么任何人都可以解释这种行为背后的原因吗? 事实上,似乎每个奇数个字母都会返回false: string test = “aaaaaaaaaaaaaaaaaaaa”; Console.WriteLine(test.StartsWith(“aa”)); Console.WriteLine(test.StartsWith(“aaa”)); Console.WriteLine(test.StartsWith(“aaaa”)); Console.WriteLine(test.StartsWith(“aaaaa”)); Console.WriteLine(test.StartsWith(“aaaaaa”)); Console.WriteLine(test.StartsWith(“aaaaaaa”)); 在丹麦系统上执行时输出后的输出: True False True False True False

String.GetHashCode()返回不同的值

为什么GetHashCode()为同一个字符串返回不同的值? 我无法描述如何复制这个,但相信这不是一个恶作剧,以下两行来自我的观察窗口,分别是两次: “DDD.Events.Application.ApplicationReferenceCreated”.GetHashCode() -1386151123 int “DDD.Events.Application.ApplicationReferenceCreated”.GetHashCode() 1858139950 int 怎么会发生这种情况? 我不知道这是否有帮助,但我在VS 2010中运行.NET 4.0并且我正在调试NServiceBus应用程序。 更新: 如果你想知道我最后做了什么,看看这个线程: 你能在x64模式下运行时生成x86哈希值吗?

C#:string 分隔字符串。 有一个单行class吗?

我更喜欢的是: string[] strArray = {“Hi”, “how”, “are”, “you”}; string strNew = strArray.Delimit(chDelimiter); 但是,没有这样的function。 我查看了MSDN,没有任何东西看起来像是一个执行相同操作的函数。 我看着StringBuilder,再一次,没有什么能让我感到高兴。 有没有人知道一个不是非常复杂的单线程,使数组成为一个分隔的字符串。 谢谢你们的帮助。 更新:哇,哈哈,我的坏。 我不停地看着arrays上的.Join,这让我感到害怕。 我甚至没看过String.Join。 多谢你们。 一旦它允许我接受我将。 提供帮助。

两个相同的字符串可以是C#中的两个独立实例吗?

在C#中,字符串被实现。 也就是说,如果我创建字符串foobar并再次使用它,C#将只在内存中有一个字符串实例,虽然我将有两个引用,但它们都指向同一个字符串实例。 这就是为什么字符串必须在C#中不可变的一个原因。 现在,我的问题是,是否有可能以某种方式创建两个相同的字符串,以便它们不被实习,但我们最终在内存中有两个不同的字符串实例,有两个不同的地址,包含相同的文本? 如果是这样,怎么样? 并且,这是不是偶然发生的事情,或者您是否需要为此案例明确构建场景? 并且,最后:假设在内存中有两个单独的字符串实例具有相同的值,它们是否相等(以== )? 如果是这样, ==如何工作? 首先通过参考比较,然后按值,或……?

FileInfo.Extension是否返回最后的*。*模式或其他内容?

我很好奇以下是什么行为: FileInfo info = new FileInfo(“C:/testfile.txt.gz”); string ext = info.Extension; 这会返回“.txt.gz”还是“.gz”? 更多扩展的行为是什么,例如“.txt.gz.zip”或类似的东西? 编辑: 要清楚,我已经测试了这个。 我想要一个属性的解释。

在C#中取消引用字符串

请原谅我的懒惰。 我知道,我可以通过阅读来解决这个问题,但我想我会给你们其中一个C#天才赢得一些代表的机会。 我有一个INI文件中的数据文件,如某些C代码和一些C#代码需要读取的格式。 C代码期望字符串值用引号括起来。 C#等效代码使用了一些我无法控制的底层类,但基本上它包含引号作为输出字符串的一部分。 即数据文件内容 MY_VAL=”Hello World!” 给我 “Hello World!” 在我的C#字符串中,当我真的需要它来包含时 Hello World! 我如何有条件地(在第一个和最后一个字符为“)时删除引号并获取我想要的字符串内容。

字符串替换C#中的变音符号

我想使用此方法来创建用户友好的URL。 因为我的网站是克罗地亚语,所以有些字符我不想剥离,而是用另一个字符替换它们。 例如,这个字符串: ŠĐĆŽšđčćž 需要是:sdccz-sdccz 所以,我想制作两个数组,一个包含要替换的字符,另一个包含替换字符的数组: string[] character = { “Š”, “Đ”, “Č”, “Ć”, “Ž”, “š”, “đ”, “č”, “ć”, “ž” }; string[] characterReplace = { “s”, “d”, “c”, “c”, “z”, “s”, “d”, “c”, “c”, “z” }; 最后,这两个数组应该用在一些方法中,它将获取字符串,查找匹配并替换它们。 在php中我用preg_replace函数来处理这个问题。 在C#中,这不起作用: s = Regex.Replace(s, character, characterReplace); 如果有人能提供帮助,我将不胜 谢谢

检查文件中是否存在字符串

我有以下代码片段,它打开一个文本文件并读取文件中的所有行并将其存储到字符串数组中。 然后检查字符串是否存在于数组中。 然而,我面临的问题是,无论何时找到一个字符串,它总是显示“有匹配”以及“没有匹配”。 知道如何解决这个问题吗? 检查此代码: using (StreamReader sr = File.OpenText(path)) { string[] lines = File.ReadAllLines(path); for (int x = 0; x < lines.Length – 1; x++) { if (domain == lines[x]) { sr.Close(); MessageBox.Show("there is a match"); } } if (sr != null) { sr.Close(); MessageBox.Show("there is no match"); } }

检测字符串是否在C#中包含多个连续重复字符的最有效方法是什么?

例如,用户输入“我喜欢这篇文章!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!” 连续的重复感叹号“!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!” 应该被发现。