Tag: char

如何将句子中每个单词的首字母大写?

可能重复: 如何把每个句子的首字母大写? public static string CapitalizeEachWord(this string sentence) { string[] words = sentence.Split(); foreach (string word in words) { word[0] = ((string)word[0]).ToUpper(); } } 我正在尝试为我自己为未来项目创建的帮助程序类创建扩展方法。 这个特别应该适当地利用每个单词。 意思是,每个单词的第一个字母都应该大写。 我无法解决这个问题。 它说我无法将字符串转换为字符串,但我记得在某些时候能够做到这一点。 也许我忘了关键部分。 谢谢你的建议。

获取Control.KeyDown上的char?

处理Control.OnKeyPress事件时,有一个包含KeyChar的KeyPressEventArgs 。 出于可用性原因,我需要完全相同的KeyChar但在处理OnKeyDown事件时。 KeyEventArgs不包含任何与char相关的数据。 我的意思是,如果在有或没有Shift的情况下按A键,它不会影响KeyCode , KeyData或KeyValue 。 使用另一种语言时,我仍然可以获得资本英语价值。 如何在KeyDown事件中获取KeyPressEventArgs.KeyChar ? 谢谢。

增加char

我发现了一些问题,询问如何让char’B’返回’C’然后’D’等等。答案非常复杂,而且大多只是矫枉过正。 为什么不简单地使用这个: char X=’A’; X++ 编辑:它从A到Z,接下来是什么?

检测* all * emojis

现在我正在使用这段代码: public static bool ContainsEmoji(this string text) { Regex rgx = new Regex(@”\p{Cs}”); return rgx.IsMatch(text); } 它有点帮助。 他们中的大多数似乎被发现,但有些则没有。 以下是帮助的参考列表: http : //unicode.org/emoji/charts/full-emoji-list.html 所有的笑脸看起来都很好,但这些特定的表情符号并没有被正则表达式所抓住: 1920 U +2614☔雨伞下雨 1921年U +26F1⛱伞在地上 1922年U +26A1⚡高压 1923年U + 2744❄雪花 在键盘上这些并不是彼此接近的,但是在列表中它们是相互跟随的,所以我只是假设有一个点它将开始不在表情符号列表中工作,并且它并没有真正validation。 从1905年(天气般的表情符号),下降,一些被捕获在正则表达式,一些不是。 似乎没有任何规则。 我不能只是去完整的ASCII,因为我需要人们输入像西里尔字母这样的字符,但我不能特别接受表情符号。 我不知道如何从这里前进。 我阅读了关于代理高/低对的MSDN文档 ,但在这个阶段这对我来说非常困惑,我认为一些正确的方向推进将会有很长的路要走。 非常感谢您的宝贵时间 :)

如何使用C#获取char **?

我需要以下列forms将参数传递给不安全的DllImported函数: [DllImport(“third_party.dll”)] private static extern unsafe int start(int argc, char** argv); 我假设它是一个字符串数组。 但是,当我尝试执行以下操作时,我得到’无法从字符串[]转换为char **’错误。 我如何让这个工作? 谢谢。 string[] argv = new string[] { }; start(0, argv); 编辑1:问题被标记为重复,但看着可能重复的问题,我仍然没有看到如何使这个工作。 编辑2:进一步确定问题和所需参数。 它看起来像您的标准argc / argv参数(参数计数,然后是参数值)。 与启动ac程序的方式相同: int main(int argc, char** argv); 对于这个特殊问题,我根本不想传递任何参数(因此count为0)。 编辑3:我从第三方库供应商那里获得了更多信息。 这里是: 第一个参数是参数计数 第二个参数是一个以空字符结尾的字符串数组 字符串是ANSI编码的 编辑4 :使用工作解决方案进行最终编辑(至少在我的情况下)。 我会把它作为答案,但不能,因为这个问题被标记为重复。 这是一个帮助我最多的问题的链接 。 最后,dll函数需要一个指向ANSI字符串缓冲区的指针数组。 所以我的最终方法(基于相关问题)如下。 在内存中创建一个数组来保存指针,然后将每个字符串分配到内存中的其他位置,并在第一个指针数组中写入指向这些字符串的指针。 此代码适用于生产: [DllImport(“third_party.dll”, CallingConvention = CallingConvention.Cdecl, […]

检查char isletter

我想检查字符串是否只包含正确的字母。 我使用了Char.IsLetter 。 我的问题是,当有像é或á这样的字符时,它们也被称为正确的字母,这不应该是。 是否有可能将字符检查为正确的字母AZ或az而没有像á这样的特殊字母?

来自Int的C#Char用作String – VB Chr()的真正等价物

我正在将VBA宏转换为C#。 在VBA中, chr(7)可以简单地连接到一个string ,就像chr()会产生一个string 。 为什么不能在C#中完成? 我试图找到我的问题的明确答案。 我已经在SO和其他几个网站上阅读了很多关于此的post和相关问题。 例如,这是一个关键答案(许多其他人被标记为dulpicates并重定向到这个): 在C#中VB的Asc()和Chr()函数的等价物是什么? 不幸的是,答案并不清楚,很多时候他们说这是正确的用法: string mystring=(char)7; 然而它给了我一个编译器错误,因为它不作为字符串进行求值。 我不得不用它来使它工作: string mystring=((char)7).ToString(); 这将等同于VB Chr()函数,实际上VB中的Chr()计算为字符串。 我的问题是:我是否总是需要将char显式转换为string或者在某些情况下它会隐式转换? 更新: Per @ Dirk的答案,这也有效: string mystring = “” + (char)7; 这并没有减少我的神秘感。 如果连接有效,为什么没有隐式转换? 我想对VB Chr()与C#中的等价物之间的区别进行全面解释。 我会很感激任何我可以阅读的参考资料,甚至可以做的例子。 提前致谢。

为什么这个方法每次都返回相同的随机字符串?

我需要创建一个独特的块来测试我正在处理的不同项目。 所以我创建了一个简单的程序来生成一个X长度的随机字符串。 问题是如果我调用它一次,我得到一个随机字符串,如果我再次调用它(例如在for循环中)我得到相同的字符串用于循环的整个执行。 我有一种感觉,它被缓存或其他东西,但我不知道.net这样做,我只是在这一点上感到困惑。 调用代码: StreamWriter SW = new StreamWriter(“c:\\test.txt”); int x = 100; while (x >0) { SW.WriteLine(RandomString(20)); x–; } 这是方法: private static string RandomString(int Length) { StringBuilder sb = new StringBuilder(); Random randomNumber = new Random(); for (int i = 0; i <= Length; ++i) { int x = randomNumber.Next(65, 122); sb.Append(Convert.ToChar(x)); } […]

使用.Net的大于2字节的unicode字符

我正在使用此代码生成U+10FFFC var s = Encoding.UTF8.GetString(new byte[] {0xF4,0x8F,0xBF,0xBC}); 我知道它是供私人使用的,但它确实显示了一个单一的字符,正如我在展示它时所期望的那样。 操纵这个unicode角色时会出现问题。 如果我以后这样做: foreach(var ch in s) { Console.WriteLine(ch); } 它不打印单个字符,而是打印两个字符(即字符串显然由两个字符组成)。 如果我改变我的循环,将这些字符添加回空字符串,如下所示: string tmp=””; foreach(var ch in s) { Console.WriteLine(ch); tmp += ch; } 在这结束时, tmp将只打印一个字符。 到底发生了什么? 我认为char包含一个unicode字符,除非我正在转换为字节,否则我不必担心字符有多少字节。 我真正的用例是我需要能够检测字符串中何时使用非常大的unicode字符。 目前我有这样的事情: foreach(var ch in s) { if(ch>=0x100000 && ch<=0x10FFFF) { Console.WriteLine("special character!"); } } 但是,由于这种非常大的字符分裂,这不起作用。 如何修改它以使其工作?

在c#中,why(char)(1)+(char)(2)得到int 3

我试图将一些VB.NET代码转换为C#,并发现这个有趣的事情。 添加两个字符会在VB.NET和C#中返回不同的结果。 VB.NET – 返回字符串 Chr(1) & Chr(2) = ” ” C# – 返回int (char)(1) + char(2) = 3 如何在C#中添加(连接)两个字符?