Как я могу проверить, появляется ли отдельный символ в строке?

            public Task<IEnumerable<Country>> GetCountries()
            {
                var x=  from n in _ConnectToDb.Country
                        orderby n.CountryId
                        select n;
                return Task.FromResult(x.ToList());
            }

Это было бы решением в вашем случае. Проблема в вашем коде заключается в том, что вы должны выполнить повторную настройку Task или запустить ожидаемый метод в GetCountries(). Само ключевое слово Async ничего не значит, оно не будет запускать метод асинхронно, оно просто позволит вам использовать await. Так что это избыточно в вашем случае

185
задан ArjunShankar 7 May 2012 в 00:17
поделиться

5 ответов

Можно использовать string.indexOf('a') .

, Если эти 'a' присутствует в string, это возвращает индекс (> =0). В противном случае это возвращается-1. Так, неотрицательное возвращаемое значение означает это 'a' is present in the string.

252
ответ дан SWPhantom 23 November 2019 в 05:52
поделиться

Да, с помощью indexOf () метод на строковом классе. См. документацию API для этого метода

2
ответ дан Mystic 23 November 2019 в 05:52
поделиться

Я не уверен, что исходный плакат спрашивает точно. С тех пор indexOf (...) и содержит (...) оба , вероятно циклы использования внутренне, возможно, он надеется видеть, возможно ли это вообще без цикла? Я могу думать о двух путях от руки, можно было бы, конечно, быть рекурсией:

public boolean containsChar(String s, char search) {
    if (s.length() == 0)
        return false;
    else
        return s.charAt(0) == search || containsChar(s.substring(1), search);
}

другой намного менее изящно, но полнота...:

/**
 * Works for strings of up to 5 characters
 */
public boolean containsChar(String s, char search) {
    if (s.length() > 5) throw IllegalArgumentException();

    try {
        if (s.charAt(0) == search) return true;
        if (s.charAt(1) == search) return true;
        if (s.charAt(2) == search) return true;
        if (s.charAt(3) == search) return true;
        if (s.charAt(4) == search) return true;
    } catch (IndexOutOfBoundsException e) {
        // this should never happen...
        return false;
    }
    return false;
}

количество строк растет, поскольку необходимо поддерживать дольше и более длинные строки, конечно. Но нет никаких loops/recurrsions вообще. Можно даже удалить проверку длины, если Вы обеспокоены, что та длина () использует цикл.

31
ответ дан Jack Leow 23 November 2019 в 05:52
поделиться

Чтобы проверить, не существует ли что-то в строке, по крайней мере, необходимо посмотреть на каждый символ в строке. Таким образом, даже если Вы не будете явно использовать цикл, то он будет иметь ту же эффективность. Однако можно попытаться использовать str.contains ("" +char).

4
ответ дан mweiss 23 November 2019 в 05:52
поделиться
  • String.contains() , который проверяет, содержит ли строка указанную последовательность символьных значений
  • String.indexOf() , который возвращает индекс в строке первого вхождения указанного символа или подстроки (существует 4 изменения этого метода)
136
ответ дан Zach Scrivena 23 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: