如何检查字符串是否包含字符或数字

本文关键字:包含 是否 字符 数字 字符串 何检查 检查 | 更新日期: 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;
}