Как я могу проверить, является ли первый символ в строке '-'? - PullRequest
0 голосов
/ 01 марта 2020

В общем, мне нужно проверить, является ли данная строка числом. Поэтому я подумал, что моя функция проверит: 1. Если первый символ «-», я хочу проверить, есть ли после него только цифры. 2. Если первый символ равен 0, длина строки должна быть меньше 3.

Проблема: я не могу найти способ получить первый символ в строке, как если бы я делал это в C (просто посмотрите, равно ли оно числу ASCII) или в Java где я бы сравнил строки с равно ().

Ответы [ 2 ]

0 голосов
/ 01 марта 2020

Я думаю, что в java это будет намного проще, так как использование функции -> s.charAt (0). Вы можете легко взять первый символ этой строки и сохранить этот символ, а затем сравнить его с чем угодно.

0 голосов
/ 01 марта 2020

Вот удобная служебная функция для разбора чисел на основе потоков:

template <class T>
bool try_parse_number(std::string_view s, T& v, const std::locale& locale)
{
    std::stringstream stream;

    stream.imbue(locale);

    stream << s;

    stream >> v;

    return !stream.fail();
}

Требуются включения <sstream>, <string_view> и <locale>, хотя вы можете исключить обработку локали.

Вы можете дополнительно создать пользовательский языковой стандарт и фасет номера, чтобы в большей степени контролировать разбор числа.

...