如何检查字符串是否包含字符或数字
本文关键字:包含 是否 字符 数字 字符串 何检查 检查 | 更新日期: 2023-09-27 18:03:00
我有如下可能的变量值"Name_1"answers"1535"
我想要一个c++或c#中的库函数来确定变量值是"1535"(它是数字)还是"Name_1"(它是一个名称)。
让我知道有哪些可用的功能?
假设可以将任何非整数字符串视为"字符":
Int32。TryParse:
String variable = "1234";
Integer dummyresult
if Int32.TryParse(variable,dummyresult)
{
// variable is numeric
}
else
{
// variable is not numeric
}
string s = "1235";
Console.WriteLine("String is numeric: " + Regex.IsMatch(s, "^[0-9]+$"));
在c++中,boost::lexical_cast会派上用场:
#include <boost/lexical_cast.hpp>
#include <iostream>
bool IsNumber(const char *s) {
using boost::lexical_cast;
try {
boost::lexical_cast<int>(s);
return true;
} catch (std::bad_cast&) {
return false;
}
}
int main(int ac, char **av) {
std::cout << av[1] << ": " << std::boolalpha << IsNumber(av[1]) << "'n";
}
EDIT:如果Boost对您不可用,请尝试:
bool IsNumber2(const char *s) {
std::istringstream stream(s);
stream.unsetf(std::ios::skipws);
int i;
if( (stream >> i) && stream.eof() )
return true;
return false;
}