如何检查单词是否以给定字符开头?

如何检查单词是否以给定字符开头?

问题描述:

我有一个Sharepoint项目列表:每个项目都有一个标题,一个描述和一个类型。 我成功检索到它,我把它叫做result。我想先检查result中是否有任何项目,以A开头,然后是B,然后是C等。我将不得不为每个字母字符做同样的事情,然后如果我找到以这个字符开头的单词,我将不得不显示粗体字。如何检查单词是否以给定字符开头?

我最初使用此功能显示的字符:

private string generateHeaderScripts(char currentChar) 
{ 
    string headerScriptHtml = "$(document).ready(function() {" + 
     "$(\"#myTable" + currentChar.ToString() + "\") " + 
     ".tablesorter({widthFixed: true, widgets: ['zebra']})" + 
     ".tablesorterPager({container: $(\"#pager" + currentChar.ToString() +"\")}); " + 
     "});"; 
    return headerScriptHtml; 
} 

我如何检查是否一个字与给定的字符开始?

+0

我可能不明白你的问题,但如果你可以解析它为一个字符串,你可以使用'.StartsWith' – 2013-03-20 15:02:49

要检查一个值,使用:

string word = "Aword"; 
    if (word.StartsWith("A")) 
    { 
     // do something 
    } 

你可以做一点扩展方法来传递一个清单,A,B和C

public static bool StartsWithAny(this string source, IEnumerable<string> strings) 
    { 
     foreach (var valueToCheck in strings) 
     { 
      if (source.StartsWith(valueToCheck)) 
      { 
       return true; 
      } 
     } 

     return false; 
    } 

    if (word.StartsWithAny(new List<string>() { "A", "B", "C" })) 
    { 
     // do something 
    } 

作为奖励,如果你想知道你的字符串开头的东西,从列表中,并以此为基础进行有价值的东西:

public static bool StartsWithAny(this string source, IEnumerable<string> strings, out string startsWithValue) 
    { 
     startsWithValue = null; 

     foreach (var valueToCheck in strings) 
     { 
      if (source.StartsWith(valueToCheck)) 
      { 
       startsWithValue = valueToCheck; 
       return true; 
      } 
     } 

     return false; 
    } 

用法:

string word = "AWord"; 
    string startsWithValue; 
    if (word.StartsWithAny(new List<string>() { "a", "b", "c" }, out startsWithValue)) 
    { 
     switch (startsWithValue) 
     { 
      case "A": 
       // Do Something 
       break; 

      // etc. 
     } 
    } 
+0

写一个扩展方法的东西,可以很容易地写成'new []是不是矫枉过正{'a','b','c'}。Contains(s [0])' – Magnus 2013-03-20 15:20:45

+0

我更喜欢“StartsWithAny”的可读性,但它也取决于预期的重用量。 – 2013-03-20 15:22:32

+0

谢谢!这个 - 带有'out'参数的扩展方法,正是我想要为我的需求编写的内容,即根据路由url段列表检查传入的路由段。奇迹般有效! – Shiva 2017-05-22 00:33:14

要在返回字符串的第一个字符,使用方法:

Word.Substring(0,1) //where word is a string 

假设你正在检查的属性是字符串类型,你可以使用String.StartsWith()方法。例如: -

if(item.Title.StartsWith("A")) 
{ 
    //do whatever 
} 

冲洗和重复

您可以实现定期Expr的essions。它们非常强大,但是当你设计你的表情时,它实际上会为你完成一项任务。

例如找到一个数字,字母,单词等,这是非常有表现力和灵活性。

他们对这些here一个真正伟大的教程:

这样的表达的一个例子是:

string input = "Some additional string to compare against."; 
Match match = Regex.Match(input, @"\ba\w*\b", RegexOptions.IgnoreCase); 

这将找到所有以“一”不管启动项案件。你甚至可以使用Lambda和Linq来使它们更加流畅。

希望有帮助。

请尝试以下操作。您可以执行StartsWith或子0,1(第一个字母)

if (Word.Substring(0,1) == "A") { 
    } 

你可以做这样的事情,检查是否有特定的字符。

public bool StartsWith(string value, string currentChar) { 
    return value.StartsWith(currentChar, true, null); 
} 

StartsWith方法有一个选项可以忽略大小写。第三个参数是设置文化。如果为空,它只是使用当前的文化。使用这种方法,您可以循环查看单词,运行检查并处理单词以根据需要突出显示第一个字符。