Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!

Idiom #137 Check if string contains only digits

Set the boolean b to true if the string s contains only characters in the range '0'..'9', false otherwise.

b = s.count("^0-9").zero?
B := (for all Char of S => Char in '0' .. '9');
#include <string.h>
char b = 0;
int n = strlen(s);
for (int i = 0; i < n; i++) {
	if (! (b = (s[i] >= '0' && s[i] <= '9')))
		break;
}
#include <ctype.h>
#include <stdbool.h>
#include <string.h>
bool b = true;
const int n = strlen(s);
for (int i = 0; i < n; ++i) {
  if (!isdigit(s[i])) {
    b = false;
    break;
  }
}
(def b (every? #(Character/isDigit %) s))
#include <algorithm>
#include <cctype>
#include <string>
bool b = false;
if (! s.empty() && std::all_of(s.begin(), s.end(), [](char c){return std::isdigit(c);})) {
    b = true;
}
bool b = s.All(char.IsDigit);
import std.ascii;
import std.algorithm;
bool b = s.all!isDigit;
std.algorithm.iteration;
std.ascii;
bool b = s.filter!(a => !isDigit(a)).empty;
final b = RegExp(r'^[0-9]+$').hasMatch(s);
b =  Regex.match?(~r{\A\d*\z}, s)
{_,Rest} = string:to_integer(S),
B = Rest == "".
Str = "21334",
[Ch || Ch <- Str, Ch < $0 orelse Ch > $9] == [].
b = .true.
do i=1, len(s)
  if (s(i:i) < '0' .or. s(i:i) > '9') then
    b = .false.
    exit
  end if
end do
b := true
for _, c := range s {
	if c < '0' || c > '9' {
		b = false
		break
	}
}
import "strings"
isNotDigit := func(c rune) bool { return c < '0' || c > '9' }
b := strings.ContainsFunc(s, isNotDigit) 
import Data.Char
b = all isDigit s
var b = /^[0-9]+$/.test(s);
boolean b = s.matches("[0-9]+");
boolean b = s.matches("[0-9]*");
fun String?.isOnlyDigits() = !this.isNullOrEmpty() && this.all { Character.isDigit(it) }
val regex = Regex("[0-9]*")
val b = regex.matches(s)
(setf b (every #'digit-char-p s))
b = tonumber(s) ~= nil
@import Foundation;
id nodigit=[[NSCharacterSet characterSetWithRange:NSMakeRange('0',10)].invertedSet copy];
BOOL b=![s rangeOfCharacterFromSet:nodigit].length;
$b = preg_match('/\D/', $s) !== 1;
var
  S: String;
  C: Char;
  B: Boolean;

  for C in S do
  begin
    B := C in ['0'..'9'];
    if not B then Break;
  end;
my $b = $s =~ /^\d*$/;
b = s.isdigit()
let b = s.bytes().all(|c| c.is_ascii_digit());
let b = s.chars().all(char::is_numeric);
let chars_are_numeric: Vec<bool> = s.chars()
				.map(|c|c.is_numeric())
				.collect();
let b = !chars_are_numeric.contains(&false);
def onlyDigits(s: String) = s.forall(_.isDigit) 
b := s allSatisfy: #isDigit
Dim x As String = "123456"
Dim b As Boolean = IsNumeric(x)

New implementation...
< >
programming-idioms.org