web-dev-qa-db-de.com

Wie prüfe ich, ob ein Wort mit einem bestimmten Zeichen beginnt?

Ich habe eine Liste von Sharepoint-Elementen: Jedes Element hat einen Titel, eine Beschreibung und einen Typ . Ich habe es erfolgreich abgerufen, ich habe es result genannt. Ich möchte zunächst prüfen, ob es in result ein Element gibt, das mit A, dann mit B, dann mit C usw. beginnt. Ich muss das gleiche für jedes Alphabet tun und dann, wenn ich ein Wort finde, das mit diesem Zeichen beginnt, muss ich es anzeigen das Zeichen in Fettdruck.

Ich zeige die Zeichen zunächst mit dieser Funktion an:

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;
}

Wie kann ich überprüfen, ob ein Wort mit einem bestimmten Zeichen beginnt?

12
sara

Um einen Wert zu überprüfen, verwenden Sie:

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

Sie können eine kleine Erweiterungsmethode erstellen, um eine Liste mit A, B und C zu übergeben

    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
    }

UND als Bonus, wenn Sie wissen möchten, was Ihre Saite mit einer Liste beginnt und etwas tun, das auf diesem Wert basiert:

    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;
    }

Verwendungszweck:

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

            // etc.
        }
    }
27
Dmitriy Khaykin

Angenommen, die von Ihnen überprüften Eigenschaften sind Zeichenfolgentypen, können Sie die Methode String.StartsWith () .. verwenden. Beispiel: -

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

Spülen und wiederholen

1
DGibbs

Sie könnten so etwas tun, um nach einem bestimmten Charakter zu suchen.

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

Die StartsWith-Methode hat eine Option, um den Fall zu ignorieren. Der dritte Parameter ist das Einstellen der Kultur. Bei null wird nur die aktuelle Kultur verwendet. Mit dieser Methode können Sie Ihre Wörter durchlaufen, die Prüfung ausführen und das Wort verarbeiten, um das erste Zeichen nach Bedarf zu markieren.

1
uadrive

Versuchen Sie unten folgendes. Sie können entweder StartsWith oder Substring 0,1 (erster Buchstabe) ausführen. 

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

Sie können reguläre Ausdrücke implementieren. Sie sind ziemlich mächtig, aber wenn Sie Ihren Ausdruck entwerfen, wird er tatsächlich eine Aufgabe für Sie erledigen.

Zum Beispiel das Finden einer Zahl, eines Buchstabens, eines Wortes usw. ist sehr ausdrucksstark und flexibel.

Sie haben ein wirklich tolles Tutorial hier :

Ein Beispiel für einen solchen Ausdruck wäre:

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

Das würde alle Elemente finden, die mit einem "a" beginnen, egal in welchem ​​Fall. Sie finden sogar Lambda und Linq, um sie noch besser fließen zu lassen.

Hoffentlich hilft das.

0
Greg

Um das erste Zeichen in einer Zeichenfolge zurückzugeben, verwenden Sie:

Word.Substring(0,1) //where Word is a string
0
Daniel Möller