草庐IT

c# - 如何连接 2 个字节?

我有2个字节:byteb1=0x5a;byteb2=0x25;如何获取0x5a25? 最佳答案 可以使用按位运算符'publicintCombine(byteb1,byteb2){intcombined=b1使用示例:[Test]publicvoidTest(){byteb1=0x5a;byteb2=0x25;varcombine=Combine(b1,b2);Assert.That(combine,Is.EqualTo(0x5a25));} 关于c#-如何连接2个字节?,我们在Stac

c# - 获取前 25 个字符的小方法

谁能想到更好的方法来执行以下操作:publicstringShortDescription{get{returnthis.Description.Length我本来想只执行string.Substring(0,25)但如果字符串小于提供的长度,它会抛出异常。 最佳答案 我经常需要这个,我为它写了一个扩展方法:publicstaticclassStringExtensions{publicstaticstringSafeSubstring(thisstringinput,intstartIndex,intlength,stringsu

c# - 一次读取一个字符串,3x3 个字符

想象一下这个字符串:_______|_|_||_||_|_||_||_|||__||_||_|||_|_|拆分此字符串以便每个数字都可以由它自己处理的最简单/最好的方法是什么?我在想类似的东西publicstring[]SplitIntoNumbers(stringinput)结果会怎样["||","__||_","__|_|",...]有什么想法吗?编辑对于想要更多信息的人-问题来自BankOCR-kata在CodingDojo.我意识到有多种方法可以“完成工作”——解决方案,但我觉得必须有一种更“奇特”的方法来解决它。类似clojure的东西。 最佳答案

c# - .NET2 DNS 拒绝超过 126 个字符的主机名,如 "too long"

在编写程序时,我最近发现.net中的主机名(或至少在ping类中)不应超过126个字符。如果主机名较长,则ping类会抛出异常。但是维基百科指出最多允许使用255个字符。看起来确实有主机名超过126个字符的机器,所以问题是:这个限制可以改变吗?谁是对的?如果不能,如何解析名称? 最佳答案 .NETDns类的主机名硬性上限为126个字符(已针对.NET4检查)。但是,您可以使用较低级别的Win32DnsQuery方法使用P/Invoke将主机名转换为IP地址,然后将这些原始地址用于.NET网络类。这是一个使用这种方法的示例DnsAdd

c# - 在 .Net 中使用大于 2 个字节的 unicode 字符

我正在使用此代码生成U+10FFFCvars=Encoding.UTF8.GetString(newbyte[]{0xF4,0x8F,0xBF,0xBC});我知道它是供私有(private)使用之类的,但它确实显示了一个字符,正如我在显示它时所期望的那样。操作此unicode字符时会出现问题。如果我以后这样做:foreach(varchins){Console.WriteLine(ch);}它不是只打印单个字符,而是打印两个字符(即字符串显然由两个字符组成)。如果我改变我的循环以将这些字符添加回空字符串,如下所示:stringtmp="";foreach(varchins){Cons

c# - 正则表达式使用 C# 保留未知长度字符串的最后 4 个字符

我需要使用正则表达式来保留字符串的最后4个字符。我不知道字符串的长度,所以我需要从末尾开始倒数。该程序是用c#编写的。下面是两个示例字符串:8400571002945我需要的结果是(最后4个字符):00572945我原来的代码行使用了Regex.Replace,但我找不到可以工作的正则表达式,您可以在下面的评论中看到。replacementVal=Regex.Replace(replacementVal,wildcard.Regex,wildcard.RegexReplaceBy);我将我的代码切换为使用Regex.Match,然后正则表达式(?s)[0-9]{4}$完美运行(见下文)

c# - 用于检查给定密码是否至少包含一个数字和一个字母的正则表达式?

谁能帮我写一个正则表达式来检查密码中是否至少有一个字母和一个数字?我要求用户密码必须是字母数字,我希望能够使用正则表达式进行检查。 最佳答案 Positivelookahead正是您要寻找的。正则表达式如下所示:(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+这里,(?=.*[A-Za-z])是肯定的先行,断言您的字符串是至少一个字符,并且(?=.*[0-9])断言它有至少一位数。重要的是要注意正先行不返回匹配项,而是断言匹配项是否存在。因此,您应该将前面的正则表达式理解为“断言它至少有一个字符;断言它至少

c# - 编写一个函数来比较两个字符串并返回第三个字符串,该字符串仅包含出现在两个字符串中的字母

我有这个作业。并通过以下方式解决了它。无论这是一个好方法还是我需要使用任何其他数据结构以更好的方式解决它,我需要您的评论。publicstringReturnCommon(stringfirstString,stringscndString){StringBuildernewStb=newStringBuilder();if(firstString!=null&&scndString!=null){foreach(charicharinfirstString){if(!newStb.ToString().Contains(ichar)&&scndString.Contains(icha

C# Big-endian ulong 来自 4 个字节

我试图在C#中将4字节数组转换为ulong。我目前正在使用此代码:atomSize=BitConverter.ToUInt32(buffer,0);byte[4]包含这个:00032但是,字节是大端字节序。有没有一种简单的方法可以将这个Big-Endianulong转换为Little-Endianulong? 最佳答案 我相信JonSkeet的MiscUtil中的EndianBitConverter图书馆(nugetlink)可以做你想做的事。您还可以使用移位操作交换位:uintswapEndianness(uintx){retur

c# - 用*屏蔽掉字符串的前12个字符?

如何获取值123456789012345或1234567890123456并将其转换为:************2345和************3456上述字符串的区别在于,一个包含15位数字,另一个包含16位。我尝试了以下方法,但它不保留15位数字的最后4位数字,现在无论字符串的长度是多少,无论是13、14、15还是16,我都想屏蔽所有开头带*的数字,但保留最后4位。这是我尝试过的:String.Format("{0}{1}","************",str.Substring(11,str.Length-12)) 最佳答案