如何使用C#从字符串中单独检查/过滤大写单词? 我不想使用“Char.IsUpper()”循环查看单词的每个字母以检查大写字母是否相同。 有没有什么办法很简单的代码来完成这项任务?与LINQ等?如何使用C#从字符串中单独检查/过滤大写单词?
回答
这是怎么回事?
string test = "This IS a STRING";
var upperCaseWords = test.Split(' ').Where(w => w == w.ToUpper());
upperCaseWords现在包含字符串中的所有大写单词。
@Downvoter - 照顾评论? – 2011-03-11 08:37:48
你能解释我的“.Where(w => w == w.ToUpper());”?为什么要这样使用,如果我尝试你的代码显示错误“System.Linq.Enumerable + WhereArrayIterator'1 [System.String]”。请帮助我.. – 2012-01-09 12:02:27
王子安东尼G - 如果你试图只是''upperCaseWords.ToString()',它会给这个结果作为'System.Linq.Enumerable + WhereArrayIterator'1 [System.String]'的类型'upperCaseWords',但这不是一个错误。你为什么认为这是?尝试以下操作以获取相应的单词(如果这是一个控制台应用程序,例如'foreach(upperCaseWords中的字符串s){Console.WriteLines(s);}',这将在单独的行中写入大写单词。 – 2012-01-09 12:10:03
你想只是一个字符串中的大写单词,是吧?
也许这样?
var upperCaseWords = from w in Regex.Split(text, @"\s+")
where char.IsUpper(w[0])
select w;
如果您希望在所有大写字母(像这样)的话,你可以用基本相同的方法,只是用不同的谓词:
var upperCaseWords = from w in Regex.Split(text, @"\s+")
where w.All(c => char.IsUpper(c))
select w;
这只是给出以大写字母开头的单词 – Cameron 2011-03-11 07:36:53
@Cameron:这就是我认为OP所指的“大写单词”;从其他回答来看,我是这个解释的少数派。 – 2011-03-11 07:39:44
不断猜测他的意思!!!! – 2011-03-11 07:53:45
您可以使用正则表达式做到这一点: http://oreilly.com/windows/archive/csharp-regular-expressions.html
寻找到最初的字母是大写的所有单词
string t17 = "This is A Test of Initial Caps";
string p17 = @"(\b[^\Wa-z0-9_][^\WA-Z0-9_]*\b)";
MatchCollection mc17 = Regex.Matches(t17, p17);
查找全部大写单词
string t15 = "This IS a Test OF ALL Caps";
string p15 = @"(\b[^\Wa-z0-9_]+\b)";
MatchCollection mc15 = Regex.Matches(t15, p15);
你可以使用正则表达式:
using System.Text.RegularExpressions;
string input = "hello hi HELLO hi HI";
MatchCollection matches = Regex.Matches(" " + input + " ", @" [A-Z]* ");
foreach (Match m in matches)
{
MessageBox.Show(m.Value);
}
编辑:为了处理在第一/最后一个字都是大写的情况下,你可以只添加一个空格,以每一面的输入字符串。我已经更新了上面的例子。
使用序号字符串比较可以加快比较速度:unicode,每个字节的字节数,不包含区域性检查。
// the TEST string
var result = input
.Split(' ')
.Where(w => String.Equals(w, w.ToUpper(), StringComparison.Ordinal));
// TEST
- 1. 使字符串中的大写单词
- 2. 如何在C++字符串中大写一个单词?
- 3. 如何查找只有大写字母的单词(字符串)?
- 4. 如何检查C中字符串中的重复单词?
- 5. 如何通过数字从字符串中分离单词C
- 6. 如何从字符串中查找(并替换)大写字母的单词?
- 7. 如何使用FINDSTR大写所有单词的字符串?
- 8. Javascript:使用字典过滤掉字符串中的单词?
- 9. 如何使用RegEx和C#在字符串中查找单词?
- 10. 检查字符串中的单词
- 11. 分割字符串由大写单词
- 12. PHP - 我如何提取大写单词从字符串
- 13. 从字符串c中删除单词#
- 14. preg_match检查字符串中每个单词的第一个字母的大写
- 15. 如何使用C#从字符串中找到最大的单词?
- 16. 使用C#NHunspell如何检查单词?
- 17. 如何将字符串中的每个单词改为大写?
- 18. 如何反转字符串中的每个单词(单独)?
- 19. 如何检查字符串是单个单词?
- 20. 如何检查字符串中的每个单独的数字?
- 21. 连接两个单独字符串的大写字母在C
- 22. 分割字符串并单独检查
- 23. BindingSource过滤器 - 从字符串中删除单词
- 24. 查找字符串中的单词词
- 25. 从C#中的某个单词之前/之后的字符串中过滤值#
- 26. 使用Contains方法检查字符串中的多个单词
- 27. 如何在两个单独的字符串中查找匹配的单词?
- 28. 如何检查字符串中的同一个单词?
- 29. 如何使用perl提取长字符串中的大写单词
- 30. 如何从字符串加入()单词?
string str =“iAMsuKUMAR”;而你想要string answer =“AMKUMAR”??喜欢这个 ? – 2011-03-11 07:34:05
@Sangram - 我很确定他想要整个大写字,但从问题来看并不明显。 – 2011-03-11 07:36:12
@ØyvindKnobloch-Bråthen:yeh..u正确....他希望我们能猜到所有的东西:-) – 2011-03-11 07:51:50