String manipulation and query functions.
concat( strings, ... )
s1+s2+...
, but this method makes sure that
values are converted to strings, with the blank value invisible.
strings
(Object, one or more): one or more strings
concat("blue", "moon") = "bluemoon"
concat("1", 2, 3, "4") = "1234"
concat("Astro", null, "Physics") = "AstroPhysics"
join( separator, words, ... )
separator
(String): string to insert between adjacent words
words
(Object, one or more): one or more values to join
separator
join("<->", "alpha", "beta", "gamma")
= "alpha<->beta<->gamma"
join(" ", 1, "brown", "mouse")
= "1 brown mouse"
equals( s1, s2 )
s1==s2
,
which can (for technical reasons) return false even if the
strings are the same.
s1
(String): first string
s2
(String): second string
equalsIgnoreCase( s1, s2 )
s1
(String): first string
s2
(String): second string
equalsIgnoreCase("Cygnus", "CYGNUS") = true
equalsIgnoreCase("Cygnus", "Andromeda") = false
startsWith( whole, start )
whole
(String): the string to test
start
(String): the sequence that may appear at the start of
whole
whole
are
the same as start
startsWith("CYGNUS X-1", "CYG") = true
endsWith( whole, end )
whole
(String): the string to test
end
(String): the sequence that may appear at the end of
whole
whole
are
the same as end
endsWith("M32", "32") = true
contains( whole, sub )
whole
(String): the string to test
sub
(String): the sequence that may appear within whole
sub
appears within
whole
contains("Vizier", "izi") = true
length( str )
str
(String): string
str
length("M34") = 3
split( words )
The result is an array of strings, and if you want to use the
individual elements you need to use square-bracket indexing,
with [0]
representing the first object
words
(String): string with embedded spaces delimiting the words
split("211:54:01 +29:33:41")
gives a 2-element array,
first element is "211:54:01"
and
second element is "+29:33:41"
.
split(" cat dog cow ")[1] = "dog"
split( words, regex )
The result is an array of strings, and if you want to use the
individual elements you need to use square-bracket indexing,
with [0]
representing the first object
words
(String): string with multiple parts
regex
(String): regular expression delimiting the different words in
the words
parameter
split("cat, dog, cow", ", *")
gives a 3-element string array.
split("23.0, 45.92", ", ")[0] = "23.0"
parseDouble(split("23.0, 45.92", ", ")[0]) = 23
matches( str, regex )
str
(String): string to test
regex
(String): regular expression string
regex
matches str
anywhere
matches("Hubble", "ub") = true
matchGroup( str, regex )
str
(String): string to match against
regex
(String): regular expression containing a grouped section
regex
didn't match str
)
matchGroup("NGC28948b","NGC([0-9]*)") = "28948"
replaceFirst( str, regex, replacement )
str
(String): string to manipulate
regex
(String): regular expression to match in str
replacement
(String): replacement string
str
, but with the first match (if any) of
regex
replaced by replacement
replaceFirst("Messier 61", "Messier ", "M-") = "M-61"
replaceAll( str, regex, replacement )
str
(String): string to manipulate
regex
(String): regular expression to match in str
replacement
(String): replacement string
str
, but with all matches of
regex
replaced by replacement
replaceAll("1-2--3---4","--*","x") = "1x2x3x4"
substring( str, startIndex )
str
(String): the input string
startIndex
(integer): the beginning index, inclusive
str
, omitting the first
startIndex
characters
substring("Galaxy", 2) = "laxy"
substring( str, startIndex, endIndex )
startIndex
and continues to the character at index endIndex-1
Thus the length of the substring is endIndex-startIndex
.
str
(String): the input string
startIndex
(integer): the beginning index, inclusive
endIndex
(integer): the end index, inclusive
str
substring("Galaxy", 2, 5) = "lax"
toUpperCase( str )
str
(String): input string
str
toUpperCase("Universe") = "UNIVERSE"
toLowerCase( str )
str
(String): input string
str
toLowerCase("Universe") = "universe"
trim( str )
str
(String): input string
trim(" some text ") = "some text"
trim("some text") = "some text"
padWithZeros( value, ndigit )
value
(long integer): numeric value to pad
ndigit
(integer): the number of digits in the resulting string
value
with
at least ndigit
characters
padWithZeros(23,5) = "00023"
desigToRa( designation )
2MASS J04355524+1630331
"
following the specifications in the document
http://cds.u-strasbg.fr/vizier/Dic/iau-spec.htx.
Note: this function should be used with considerable care. Such designators are intended for object identification and not for communicating sky positions, so that the resulting positions are likely to lack precision, and may be inaccurate. If positional information is available from other sources, it should almost certainly be used instead. But if there's no other choice, this may be used as a fallback.
Note also
that a designator with no coordsystem-specific flag character
(a leading "J
", "B
" or "G
")
is considered to be B1950, not J2000.
designation
(String): designation string in IAU format
desigToRa("2MASS J04355524+1630331") = 60.98016
desigToRa("PSR J120000.0+450000.0") = 180
desigToDec("PSR B120000.0+450000.0") = 180.639096
desigToRa("PN G001.2-00.3") = 267.403
desigToRa("NGC 4993") = NaN
desigToDec( designation )
2MASS J04355524+1630331
"
following the specifications in the document
http://cds.u-strasbg.fr/vizier/Dic/iau-spec.htx.
Note: this function should be used with considerable care. Such designators are intended for object identification and not for communicating sky positions, so that the resulting positions are likely to lack precision, and may be inaccurate. If positional information is available from other sources, it should almost certainly be used instead. But if there's no other choice, this may be used as a fallback.
Note also
that a designator with no coordsystem-specific flag character
(a leading "J
", "B
" or "G
")
is considered to be B1950, not J2000.
designation
(String): designation string in IAU format
desigToDec("2MASS J04355524+1630331") = 16.50919
desigToDec("PSR J120000.0+450000.0") = 45
desigToDec("PSR B120000.0+450000.0") = 44.72167
desigToDec("PN G001.2-00.3") = -28.06457
desigToDec("NGC 4993") = NaN
desigToIcrs( designation )
2MASS J04355524+1630331
"
to determine its sky position,
following the specifications in the document
http://cds.u-strasbg.fr/vizier/Dic/iau-spec.htx.
Obviously, this only works where the sequence part of the designation takes one of the family of coordinate-based forms.
Note: this function should be used with considerable care. Such designators are intended for object identification and not for communicating sky positions, so that the resulting positions are likely to lack precision, and may be inaccurate. If positional information is available from other sources, it should almost certainly be used instead. But if there's no other choice, this may be used as a fallback.
Note also
that a designator with no coordsystem-specific flag character
(a leading "J
", "B
" or "G
")
is considered to be B1950, not J2000.
designation
(String): designation string in IAU format
null
if no position can be decoded