Dear all,
it is possible to test whether a string starts with a number?
Let’s say I have the following:
julia> x="Some string"
"Some string"
julia> y="1 Another string"
"1 Another string"
julia> X=x[1]
'S': ASCII/Unicode U+0053 (category Lu: Letter, uppercase)
julia> Y=y[1]
'1': ASCII/Unicode U+0031 (category Nd: Number, decimal digit)
julia> parse(Int8, X)
ERROR: ArgumentError: invalid base 10 digit 'S'
Stacktrace:
[1] #parse#330(::Int64, ::Function, ::Type{Int8}, ::Char) at ./parse.jl:43
[2] parse(::Type{Int8}, ::Char) at ./parse.jl:38
[3] top-level scope at none:0
julia> parse(Int8, Y)
1
How can I distinguish between X and Y and determine that Y is a number?
Thank you
1 Like
isdigit(X) && parse(Int8, X)
more generally, if you look for test functions, doing
julia> is\<tab>\<tab>
gives you a list of isX
functions.
2 Likes
It is unclear if you want to check if a string starts with a number (ie something that would parse as a ::Real
, or even broader, in Julia, eg "-12.7e9foo"
), or simply a digit.
for the moment digit will do (thus the question is answered), but a more general approach might be handy in the future.
You have to be specific about how you want to generalize this; what would constitute valid strings, whether you need the number, etc. If you don’t, a regular expression can be used.
1 Like
The more general approach you’re looking for is regex. Julia has regex functionality in Base
, the relevant functions are listed here.
Be warned, regex notation is impossible to remember.
1 Like