Tag: string

正则表达式通配符

我刚刚开始使用Regular Expressions ,这是如此压倒性的,即使在阅读文档后,我似乎无法找到从哪里开始帮助解决我的问题。 我需要一堆字符串。 “Project1 – Notepad” “Project2 – Notepad” “Project3 – Notepad” “Untitled – Notepad” “HeyHo – Notepad” 我有一个包含外卡的字符串。 “* – Notepad” 如果我将这些字符串中的任何一个与包含通配符的字符串进行比较,我将需要它返回true。 (使用Regex.IsMatch()或类似的东西..) 我通常不会要求这样的答案,但我找不到我需要的东西。 有人能指出我正确的方向吗?

Base64字符串抛出无效字符错误

即使我不应该,我仍然会收到Base64无效字符错误。 该程序采用XML文件并将其导出到文档。 如果用户想要,它也会压缩文件。 压缩工作正常并返回一个Base64字符串,该字符串被编码为UTF-8并写入文件。 当它将文档重新加载到程序中时,我必须检查它是否被压缩,代码只是: byte[] gzBuffer = System.Convert.FromBase64String(text); return “1F-8B-08” == BitConverter.ToString(new List(gzBuffer).GetRange(4, 3).ToArray()); 它检查字符串的开头以查看其中是否包含GZips代码。 现在问题是,我的所有测试都有效。 我拿一根绳子,压缩它,解压缩,并将它与原始的相比较。 问题是当我从ADO Recordset返回字符串时。 字符串正是写入文件的内容(最后添加了一个“\ 0”,但我认为即使做了任何事情,甚至修剪它仍然会抛出)。 我甚至将整个字符串复制并粘贴到测试方法中并压缩/解压缩。 工作良好。 测试将通过,但代码将使用完全相同的字符串失败? 唯一的区别是,不是仅仅声明一个常规字符串并传递它,而是从记录集中返回一个。 关于我做错什么的任何想法?

Double.Parse – 国际化问题

这真让我抓狂。 我在ASP.NET 2.0 WebForm页面中有以下字符串 string s = “0.009”; 很简单。 现在,如果我的文化是西class牙语 – 这是“es-ES” – 我尝试将字符串转换为Double,我会执行以下操作: double d = Double.Parse(s, new CultureInfo(“es-ES”)); 我期待的是0,009。 相反,我得到9.我明白.NET认为它是千分隔符,在en-US中是一个逗号,但不应该把我传递给parse方法的文化信息并应用正确的格式转换? 如果我做 double d = 0.009D; string formatted = d.ToString(new CultureInfo(“es-ES”)); 格式化现在是0,009。 任何人?

为什么字符串的行为类似于ValueType

在执行这段代码之后,我感到很困惑,其中字符串似乎表现得好像它们是值类型。 我想知道赋值运算符是否运行像字符串的相等运算符之类的值。 这是我为测试此行为而执行的一段代码。 using System; namespace RefTypeDelimma { class Program { static void Main(string[] args) { string a1, a2; a1 = “ABC”; a2 = a1; //This should assign a1 reference to a2 a2 = “XYZ”; //I expect this should change the a1 value to “XYZ” Console.WriteLine(“a1:” + a1 + “, a2:” + a2);//Outputs a1:ABC, a2:XYZ […]

二进制文件到字符串

我正在尝试将二进制文件(例如可执行文件)读入字符串,然后将其写回 FileStream fs = new FileStream(“C:\\tvin.exe”, FileMode.Open); BinaryReader br = new BinaryReader(fs); byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length)); System.Text.Encoding enc = System.Text.Encoding.ASCII; string myString = enc.GetString(bin); fs.Close(); br.Close(); System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); byte[] rebin = encoding.GetBytes(myString); FileStream fs2 = new FileStream(“C:\\tvout.exe”, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs2); bw.Write(rebin); fs2.Close(); bw.Close(); 这不起作用(结果具有完全相同的字节大小但无法运行) 如果我做bw.Write(bin)结果没问题,但我必须将它保存为字符串

两个字符串C#之间的区别

可以说我有两个字符串: string s1 = “hello”; string s2 = “hello world”; 有没有办法让我得到一个string s3 = ” world”; 这两个字符串之间的区别是什么? 编辑: 在这种情况下,差异将始终存在 s1 = “abc” s2 = “abcd ads as “

从String中的char位置获取行号的最简单方法是什么?

从C#中的字符串中的char位置获取行号的最简单方法是什么? (或获取行的位置(第一个字符串))是否有内置函数? 如果没有这样的function,那么编写扩展名的好方法就像: public static class StringExt { public static int LineFromPos(this String S, int Pos) { int Res = 1; for (int i = 0; i <= Pos – 1; i++) if (S[i] == '\n') Res++; return Res; } public static int PosFromLine(this String S, int Pos) { …. } } ? 编辑:添加方法PosFromLine

将数字转换为.NET中的hex值

我需要将整数转换为hex值。 它看起来像这样: 0x0201cb77192c851c 当我做 string hex = int.ToString(“x”) 在C#中,它返回 201cb77192c851c 我怎样才能得到所需的结果?

C#:拆分字符串并将结果分配给多个字符串变量

我有一个字符串,其中有几个字段由特定字符分隔,如下所示: A,B,C 我想在逗号中拆分字符串并将每个结果字段分配给它自己的字符串变量。 在Perl中我可以像这样优雅地做到这一点: my ($varA, $varB, $varC) = split (/,/, $string); 在C#中实现相同结果的最简单,最优雅的方法是什么? 我知道我可以分成一个数组: string[] results = string.Split(‘,’); 但后来我必须通过他们的索引访问字段,例如结果[2]。 这是难以阅读和容易出错的 – 考虑没有3个但是30个字段。 出于这个原因,我更喜欢将每个字段值放在自己的命名变量中。

sp #f在C#中?

在C#中有类似sprintf()东西吗? 我想比如将整数转换为2字节的字节数组。 就像是: int number = 17; byte[] s = sprintf(“%2c”, number);