我有可能的变量值,如下所示“Name_1”和“1535”。
我想用C ++或C#中的库函数来确定变量值是“1535”(它是数字)还是“Name_1”(它是一个名字)。
让我知道有哪些功能?
答案 0 :(得分:1)
假设可以将任何非整数字符串视为“字符”:
String variable = "1234";
Integer dummyresult
if Int32.TryParse(variable,dummyresult)
{
// variable is numeric
}
else
{
// variable is not numeric
}
答案 1 :(得分:1)
string s = "1235";
Console.WriteLine("String is numeric: " + Regex.IsMatch(s, "^[0-9]+$"));
答案 2 :(得分:1)
在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";
}
<小时/> 编辑:如果您无法使用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;
}