Tag: 字符串

如何从多行TextBox中将字符串拆分为List ,将’\ n \ r’作为行结尾添加?

我的XAML文件中有一个文本框: 我得到一个我发送给CreateTable(string) ,后者又调用CreateTable(List) 。 public override void CreateTable(string itemTypeDefinitionScript) { CreateTable(itemTypeDefinitionScript.Split(Environment.NewLine.ToCharArray()).ToList()); } public override void CreateTable(List itemTypeDefinitionArray) { Console.WriteLine(“test: ” + String.Join(“|”, itemTypeDefinitionArray.ToArray())); } 问题是字符串显然在每一行的末尾都有’\ n \ r’,所以Split(’\ n’)只得到其中一个和Split(’\ r’)一样,并使用Environment.Newline.ToCharArray ()当我输入: one two three 产生这个: one||two||three 但我当然想要它产生这个: one|two|three 什么是单行简单地将带有’ \n\r ‘结尾的字符串解析为List ?

使用’\ r \ n’拆分文本

我正在关注这篇文章 我想出了这段代码: string FileName = “C:\\test.txt”; using (StreamReader sr = new StreamReader(FileName, Encoding.Default)) { string[] stringSeparators = new string[] { “\r\n” }; string text = sr.ReadToEnd(); string[] lines = text.Split(stringSeparators, StringSplitOptions.None); foreach (string s in lines) { Console.WriteLine(s); } } 以下是示例文本: somet interesting text\n some text that should be in the same line\r\n some text […]

在模板中替换字符串的最快方法

我有一些模板字符串 这是我的{0}模板{1}字符串 我计划将用户值放在String.Format() 。 字符串实际上更长,所以为了便于阅读我使用: 这是我的{goodName1}模板{goodName2}字符串 然后String.Replace每个参数及其值。 如何获得最高性能和可读性? 也许我不应该在文件中使用此模板(如现在),但通过连接到字符串生成器并在需要时添加参数来动态构建它? 虽然它的可读性较差。 我的其他选择是什么?

近似字符串匹配

我知道这个问题已被问了很多时间。 我想要一个关于哪种算法适合近似字符串匹配的建议。 该应用程序专门用于公司名称匹配,而不是其他任何内容。 最大的挑战可能是公司的名称部分和简短的命名部分示例:1。companyA pty ltd vs companyA pty。 LTD。 vs companyA 2. WES工程与WES工程(极为罕见) 你认为Levenshtein编辑距离是否足够? 我正在使用C# 此致,Max

将字体转换为字符串并再次返回

我有一个应用程序,我的用户更改不同标签等的字体和字体颜色,他们将其保存到文件但我需要能够将指定标签的字体转换为要写入文件的字符串,然后当他们打开该文件,我的程序将该字符串转换回字体对象。 如何才能做到这一点? 我还没有找到任何能说明如何做到的事情。 谢谢 巴尔

使用哪个版本的StringComparer

如果我想要一个不区分大小写的字符串键,那么在给定这些约束的情况下,我应该使用哪个版本的StringComparer: 字典中的键来自C#代码或仅用英语语言环境编写的配置文件(美国或英国) 该软件已国际化,将在不同的区域运行 我通常使用StringComparer.InvariantCultureIgnoreCase但不确定这是否是正确的情况。 这是示例代码: Dictionary stuff = new Dictionary(StringComparer.InvariantCultureIgnoreCase);

有没有更好的方法来计算C#中字符串中的字符串格式占位符?

我有一个模板字符串和一个来自不同来源的参数数组,但需要匹配以创建一个新的“填充”字符串: string templateString = GetTemplate(); // eg “Mr {0} has a {1}” string[] dataItems = GetDataItems(); // eg [“Jones”, “ceiling cat”} string resultingString = String.Format(templateString, dataItems); // eg “Mr Jones has a ceiling cat” 使用此代码,我假设模板中字符串格式占位符的数量将等于数据项的数量。 在我的情况下,这通常是一个公平的假设,但我希望能够生成一个resultString,即使假设是错误的也不会失败。 我不介意是否有空格来丢失数据。 如果dataItems中的dataItems太多,则String.Format方法可以很好地处理它。 如果还不够,我会得到一个例外。 为了解决这个问题,我计算了占位符的数量,并在没有足够的情况下向dataItems数组中添加新项。 为了计算占位符,我目前正在使用的代码是: private static int CountOccurrences(string haystack) { // Loop through all instances of the string […]

C#中的字符串赋值

几周前,我发现C#中的字符串被定义为引用类型而不是值类型。 最初我对此感到困惑,但经过一些阅读后,我突然明白为什么将字符串存储在堆而不是堆栈上是很重要的 – 因为将非常大的字符串复制到不可预测的数字上会非常低效堆栈帧。 我完全接受了。 我觉得我的理解几乎已经完成了,但是我缺少一个元素 – 字符串用什么语言来保持它们不变? 用代码示例来说明: string valueA = “FirstValue”; string valueB = valueA; valueA = “AnotherValue”; Assert.AreEqual(“FirstValue”, valueB); // Passes 当我将valueA分配给valueB时,我不明白哪个语言function会复制valueA。 或者,当我将valueA赋值给valueB时,对valueA的引用不会改变,只有valueA在我设置字符串时获得对它自身的新引用。 由于这是一个实例类型,我不明白为什么这样做。 我知道你可以重载,例如,==和!=运算符,但我似乎找不到有关重载=运算符的任何文档。 解释是什么?

将两位数年份转换为四位数年份

这是最佳实践的问题。 我有一个实用程序,以字符串forms将两位数作为年份,我需要将其转换为四位数年份作为字符串。 现在我做 //DOB’s format is “MMM (D)D YY” that first digit of the day is not there for numbers 1-9 string tmpYear = rowIn.DOB.Substring(rowIn.DOB.Length – 3, 2); //-3 because it is 0 indexed if (Convert.ToInt16(tmpYear) > 50) tmpYear = String.Format(“19{0}”, tmpYear); else tmpYear = String.Format(“20{0}”, tmpYear); 我确信我做错了,任何指针?

c#字符串格式

我很好奇为什么我会使用字符串格式,而我可以使用连接,如 Console.WriteLine(“Hello {0} !”, name); Console.WriteLine(“Hello “+ name + ” !”); 为什么选择第一个超过第二个?