Return true if the string contains a number (real or integer).
type(string) :: astring
logical :: test_passed(7)
astring = ' -1212112 '
test_passed(1) = astring%is_number().eqv..true.
astring = ' -121.2112 '
test_passed(2) = astring%is_number().eqv..true.
astring = ' -1212112'
test_passed(3) = astring%is_number(allow_spaces=.false.).eqv..false.
astring = '-12121.12 '
test_passed(4) = astring%is_number(allow_spaces=.false.).eqv..false.
astring = '+2e20'
test_passed(5) = astring%is_number().eqv..true.
astring = ' -2.4E13 '
test_passed(6) = astring%is_number().eqv..true.
astring = ' -2 E13 '
test_passed(7) = astring%is_number().eqv..false.
print '(L1)', all(test_passed)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(string), | intent(in) | :: | self |
The string. |
||
logical, | intent(in), | optional | :: | allow_spaces |
Allow leading-trailing spaces. |
Result of the test.
elemental function is_number(self, allow_spaces) !< Return true if the string contains a number (real or integer). !< !<```fortran !< type(string) :: astring !< logical :: test_passed(7) !< astring = ' -1212112 ' !< test_passed(1) = astring%is_number().eqv..true. !< astring = ' -121.2112 ' !< test_passed(2) = astring%is_number().eqv..true. !< astring = ' -1212112' !< test_passed(3) = astring%is_number(allow_spaces=.false.).eqv..false. !< astring = '-12121.12 ' !< test_passed(4) = astring%is_number(allow_spaces=.false.).eqv..false. !< astring = '+2e20' !< test_passed(5) = astring%is_number().eqv..true. !< astring = ' -2.4E13 ' !< test_passed(6) = astring%is_number().eqv..true. !< astring = ' -2 E13 ' !< test_passed(7) = astring%is_number().eqv..false. !< print '(L1)', all(test_passed) !<``` !=> T <<< class(string), intent(in) :: self !< The string. logical, intent(in), optional :: allow_spaces !< Allow leading-trailing spaces. logical :: is_number !< Result of the test. is_number = (self%is_integer(allow_spaces=allow_spaces).or.self%is_real(allow_spaces=allow_spaces)) endfunction is_number