NCL Home >
Documentation >
Functions >
String manipulation
str_split_by_length
Splits a string or strings into an array of strings given a length, or an array of lengths.
Available in version 6.0.0 and later.
Prototype
function str_split_by_length ( string_val [*] : string, length_val [*] : integer ) return_val [*] : string
Arguments
string_valThe input string(s) to split.
length_valThe length(s) of which to split the string(s) into.
Return value
An array of strings.
Description
This function splits string(s) based on a length or a length array. If the sum of the length array is larger than the length of the input string, then missing values are is assigned to the sub-strings beyond the input string length.
See Also
Examples
Example 1
Split string(s) by length, or by array of length
digit_strings = (/"012345678901234567890123456789", "01234567898765432100123456789876543210"/) alpha_strings = (/"abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"/) dtime_strings = (/"20010203040506", "200203040506", "20030405", "200405060708", "20050607080910"/) tst_digit = str_split_by_length(digit_strings, 1) tst_alpha = str_split_by_length(alpha_strings, 2) dtime_map = (/4,2,2,2,2,2/) tst_dtime = str_split_by_length(dtime_strings, dtime_map) print(tst_digit) print(tst_alpha) print(tst_dtime) print("dtime_year : " + tst_dtime(:,0)) print("dtime_month : " + tst_dtime(:,1)) print("dtime_day : " + tst_dtime(:,2)) print("dtime_hour : " + tst_dtime(:,3)) print("dtime_minute: " + tst_dtime(:,4)) print("dtime_second: " + tst_dtime(:,5))
Output will be:
Variable: tst_digit
Type: string
Total Size: 304 bytes
76 values
Number of Dimensions: 2
Dimensions and sizes: [2] x [38]
Coordinates:
(0,0) 0
(0,1) 1
(0,2) 2
(0,3) 3
(0,4) 4
(0,5) 5
(0,6) 6
(0,7) 7
(0,8) 8
(0,9) 9
(0,10) 0
(0,11) 1
(0,12) 2
(0,13) 3
(0,14) 4
(0,15) 5
(0,16) 6
(0,17) 7
(0,18) 8
(0,19) 9
(0,20) 0
(0,21) 1
(0,22) 2
(0,23) 3
(0,24) 4
(0,25) 5
(0,26) 6
(0,27) 7
(0,28) 8
(0,29) 9
(0,30) missing
(0,31) missing
(0,32) missing
(0,33) missing
(0,34) missing
(0,35) missing
(0,36) missing
(0,37) missing
(1,0) 0
(1,1) 1
(1,2) 2
(1,3) 3
(1,4) 4
(1,5) 5
(1,6) 6
(1,7) 7
(1,8) 8
(1,9) 9
(1,10) 8
(1,11) 7
(1,12) 6
(1,13) 5
(1,14) 4
(1,15) 3
(1,16) 2
(1,17) 1
(1,18) 0
(1,19) 0
(1,20) 1
(1,21) 2
(1,22) 3
(1,23) 4
(1,24) 5
(1,25) 6
(1,26) 7
(1,27) 8
(1,28) 9
(1,29) 8
(1,30) 7
(1,31) 6
(1,32) 5
(1,33) 4
(1,34) 3
(1,35) 2
(1,36) 1
(1,37) 0
Variable: tst_alpha
Type: string
Total Size: 104 bytes
26 values
Number of Dimensions: 2
Dimensions and sizes: [2] x [13]
Coordinates:
(0,0) ab
(0,1) cd
(0,2) ef
(0,3) gh
(0,4) ij
(0,5) kl
(0,6) mn
(0,7) op
(0,8) qr
(0,9) st
(0,10) uv
(0,11) wx
(0,12) yz
(1,0) AB
(1,1) CD
(1,2) EF
(1,3) GH
(1,4) IJ
(1,5) KL
(1,6) MN
(1,7) OP
(1,8) QR
(1,9) ST
(1,10) UV
(1,11) WX
(1,12) YZ
Variable: tst_dtime
Type: string
Total Size: 120 bytes
30 values
Number of Dimensions: 2
Dimensions and sizes: [5] x [6]
Coordinates:
(0,0) 2001
(0,1) 02
(0,2) 03
(0,3) 04
(0,4) 05
(0,5) 06
(1,0) 2002
(1,1) 03
(1,2) 04
(1,3) 05
(1,4) 06
(1,5) missing
(2,0) 2003
(2,1) 04
(2,2) 05
(2,3) missing
(2,4) missing
(2,5) missing
(3,0) 2004
(3,1) 05
(3,2) 06
(3,3) 07
(3,4) 08
(3,5) missing
(4,0) 2005
(4,1) 06
(4,2) 07
(4,3) 08
(4,4) 09
(4,5) 10
(0) dtime_year : 2001
(1) dtime_year : 2002
(2) dtime_year : 2003
(3) dtime_year : 2004
(4) dtime_year : 2005
(0) dtime_month : 02
(1) dtime_month : 03
(2) dtime_month : 04
(3) dtime_month : 05
(4) dtime_month : 06
(0) dtime_day : 03
(1) dtime_day : 04
(2) dtime_day : 05
(3) dtime_day : 06
(4) dtime_day : 07
(0) dtime_hour : 04
(1) dtime_hour : 05
(2) dtime_hour : missing
(3) dtime_hour : 07
(4) dtime_hour : 08
(0) dtime_minute: 05
(1) dtime_minute: 06
(2) dtime_minute: missing
(3) dtime_minute: 08
(4) dtime_minute: 09
(0) dtime_second: 06
(1) dtime_second: missing
(2) dtime_second: missing
(3) dtime_second: missing
(4) dtime_second: 10