c# tag ¿Cómo verificar si una palabra comienza con un personaje dado?




tag c# (5)

Tengo una lista de elementos de Sharepoint: cada elemento tiene un título, una descripción y un tipo. Lo recuperé con éxito, lo llamé result . Primero quiero verificar si hay algún elemento en el result que comience con A, luego B, luego C, etc. Tendré que hacer lo mismo para cada carácter del alfabeto y luego, si encuentro una palabra que comience con este carácter, tendré que mostrar el personaje en negrita

Inicialmente, muestro los caracteres usando esta función:

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

¿Cómo puedo verificar si una palabra comienza con un personaje dado?


Podría implementar expresiones regulares . Son bastante potentes, pero cuando diseñas tu expresión, en realidad logrará una tarea para ti.

Por ejemplo, encontrar un número, letra, palabra, etc. es bastante expresivo y flexible.

Ellos tienen un gran tutorial sobre ellos aquí :

Un ejemplo de tal expresión sería:

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

Eso encontraría todos los artículos que comienzan con una "a" sin importar el caso. Incluso puede utilizar Lambda y Linq para que fluyan aún mejor.

Espero que eso ayude.


Para verificar un valor, use:

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

Puede hacer un pequeño método de extensión para pasar una lista con A, B y 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
    }

Y como una ventaja, si quiere saber con qué comienza su cadena, de una lista, y haga algo basado en ese valor:

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

Uso:

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

            // etc.
        }
    }

Pruebe lo siguiente a continuación. Puede hacer StartsWith o Substring 0,1 (primera letra)

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

Para devolver el primer caracter en una cadena, use:

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

Suponiendo que las propiedades que está comprobando son tipos de cadenas, puede usar el método String.StartsWith () . Por ejemplo:

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

Enjuague y repita





web-parts