通常,我需要检查给定的字符串是否为数字。所以我认为我的功能将检查:1.如果第一个字符为“-”,我想检查其后是否只有数字。2.如果第一个字符为0,则字符串的长度必须小于3。
问题:我无法找到一种方法来获取字符串中的第一个字符,就像我要在C中(只是看它是否等于ASCII数字一样),还是在Java中,我都将比较等于的字符串()。
这是一个方便的实用程序功能,可基于流来解析数字:
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>
,尽管您可以删除语言环境处理。
您可以进一步创建自定义语言环境和数字构面,以在更大程度上控制数字解析。