How to split a string in two substrings of same length using bash?How to split a string into an array in bashBash Combine Replacement and Sub String Extraction in One StepPiping bash string manipulationBash - Split quoted parametersSplit single string into character array using ONLY bashPrint month between two wordsSplit a string by some separator in bash?Cut the string in half with the last specific character shows up in the stringbash command to print string in unambiguous formsplit string to two parts using sed or awk or perl or bash
Is it possible to have a wealthy country without a middle class?
What's up with this leaf?
How did old MS-DOS games utilize various graphic cards?
SQL counting distinct over partition
Does the Long March-11 increase its thrust after clearing the launch tower?
Did Milano or Benatar approve or comment on their namesake MCU ships?
Non-disclosure agreement in a small business
English word for "product of tinkering"
Is this use of the expression "long past" correct?
How to handle self harm scars on the arm in work environment?
Someone whose aspirations exceed abilities or means
Second (easy access) account in case my bank screws up
What speaks against investing in precious metals?
Union with anonymous struct with flexible array member
What can I, as a user, do about offensive reviews in App Store?
Are there any important biographies of nobodies?
Using "subway" as name for London Underground?
1980s live-action movie where individually-coloured nations on clouds fight
Need feedback - Can the composition/colors of this design be fixed if something is lacking or is not a better fit?
How can I get an unreasonable manager to approve time off?
How do I prevent employees from either switching to competitors or opening their own business?
Is it possible to have the age of the universe be unknown?
Is using haveibeenpwned to validate password strength rational?
is it possible for a vehicle to be manufactured witout a catalitic converter
How to split a string in two substrings of same length using bash?
How to split a string into an array in bashBash Combine Replacement and Sub String Extraction in One StepPiping bash string manipulationBash - Split quoted parametersSplit single string into character array using ONLY bashPrint month between two wordsSplit a string by some separator in bash?Cut the string in half with the last specific character shows up in the stringbash command to print string in unambiguous formsplit string to two parts using sed or awk or perl or bash
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I would like to split a string into two halves and print them sequentially. For example:
abcdef
into
abc
def
Is there a simple way to do it, or it needs some string processing?
bash string
New contributor
add a comment |
I would like to split a string into two halves and print them sequentially. For example:
abcdef
into
abc
def
Is there a simple way to do it, or it needs some string processing?
bash string
New contributor
How do you have the incoming string? Variable? Stdin? Other?
– Jeff Schaller♦
May 30 at 21:24
1
In a variable. It doesn't really matter, as anything can be worked out (stdin input can be put in a variable).
– Gabriel Diego
May 30 at 21:27
It matters for efficiency, especially if it can be possibly-gigantic. And also for convenience.
– Peter Cordes
May 31 at 10:36
add a comment |
I would like to split a string into two halves and print them sequentially. For example:
abcdef
into
abc
def
Is there a simple way to do it, or it needs some string processing?
bash string
New contributor
I would like to split a string into two halves and print them sequentially. For example:
abcdef
into
abc
def
Is there a simple way to do it, or it needs some string processing?
bash string
bash string
New contributor
New contributor
edited May 30 at 21:23
Jeff Schaller♦
46.4k1166150
46.4k1166150
New contributor
asked May 30 at 21:11
Gabriel DiegoGabriel Diego
1665
1665
New contributor
New contributor
How do you have the incoming string? Variable? Stdin? Other?
– Jeff Schaller♦
May 30 at 21:24
1
In a variable. It doesn't really matter, as anything can be worked out (stdin input can be put in a variable).
– Gabriel Diego
May 30 at 21:27
It matters for efficiency, especially if it can be possibly-gigantic. And also for convenience.
– Peter Cordes
May 31 at 10:36
add a comment |
How do you have the incoming string? Variable? Stdin? Other?
– Jeff Schaller♦
May 30 at 21:24
1
In a variable. It doesn't really matter, as anything can be worked out (stdin input can be put in a variable).
– Gabriel Diego
May 30 at 21:27
It matters for efficiency, especially if it can be possibly-gigantic. And also for convenience.
– Peter Cordes
May 31 at 10:36
How do you have the incoming string? Variable? Stdin? Other?
– Jeff Schaller♦
May 30 at 21:24
How do you have the incoming string? Variable? Stdin? Other?
– Jeff Schaller♦
May 30 at 21:24
1
1
In a variable. It doesn't really matter, as anything can be worked out (stdin input can be put in a variable).
– Gabriel Diego
May 30 at 21:27
In a variable. It doesn't really matter, as anything can be worked out (stdin input can be put in a variable).
– Gabriel Diego
May 30 at 21:27
It matters for efficiency, especially if it can be possibly-gigantic. And also for convenience.
– Peter Cordes
May 31 at 10:36
It matters for efficiency, especially if it can be possibly-gigantic. And also for convenience.
– Peter Cordes
May 31 at 10:36
add a comment |
4 Answers
4
active
oldest
votes
Using parameter expansion and shell arithmetic:
The first half of the variable will be:
$var:0:$#var/2
The second half of the variable will be:
$var:$#var/2
so you could use:
printf '%sn' "$var:0:$#var/2" "$var:$#var/2"
You could also use the following awk command:
awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
$ echo abcdef | awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
abc
def
Thanks for the response!
– Gabriel Diego
May 30 at 21:19
concise and elegant solution.
– Dudi Boy
May 30 at 21:32
3
You can get rid of the$((...))
; theoff
andlen
part of the$var:off:len
substitution are already evaluated as arithmetic expressions. Example:foo=01234567; echo "$foo:0:$#foo/2 $foo:$#foo/2"
. That's documented, and it's the same inzsh
andksh93
as in bash.
– mosvy
May 30 at 21:47
3
Note: If the length of the string is odd, this will still split it into two parts, but the second will be a character longer.
– peterh
May 31 at 7:39
add a comment |
Using split
, here strings and command substitution:
var=abcdef
printf '%sn' "$(split -n1/2 <<<$var)" "$(split -n2/2 <<<$var)"
add a comment |
Another awk
script can be:
echo abcdef | awk 'print substr($0,1,length/2); print substr($0,length/2+1)'
1
Note that it doesn't work with mawk or busybox awk because of the syntax ambiguity of division/
and the/ERE/
operator, and the special case of()
being optional forlength
(still those implementations are not POSIX compliant in that case). Usinglength()
orlength($0)
here instead oflength
would help for those. You could also doawk 'BEGINhalf = int(length(ARGV[1]) / 2); print substr(ARGV[1], 1, half) ORS substr(ARGV[1], half+1)' abcdef
which would save the pipe and extra process and make it work even if the string contains newline characters.
– Stéphane Chazelas
May 31 at 10:55
add a comment |
Python 3
s = input() # Take one line of input from stdin.
x = len(s) // 2 # Get middle of string. "//" is floor division
print(s[:x], s[x:], sep="n") # Print "s" up to "x", then "s" past "x", joined on newlines.
For example,
$ echo abcdef | python3 -c 's = input(); x = len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
def
If the string length is not an even number, the second line will be longer. E.g.
$ echo abcdefg | python3 -c 's = input(); x= len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
defg
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Gabriel Diego is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f522052%2fhow-to-split-a-string-in-two-substrings-of-same-length-using-bash%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Using parameter expansion and shell arithmetic:
The first half of the variable will be:
$var:0:$#var/2
The second half of the variable will be:
$var:$#var/2
so you could use:
printf '%sn' "$var:0:$#var/2" "$var:$#var/2"
You could also use the following awk command:
awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
$ echo abcdef | awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
abc
def
Thanks for the response!
– Gabriel Diego
May 30 at 21:19
concise and elegant solution.
– Dudi Boy
May 30 at 21:32
3
You can get rid of the$((...))
; theoff
andlen
part of the$var:off:len
substitution are already evaluated as arithmetic expressions. Example:foo=01234567; echo "$foo:0:$#foo/2 $foo:$#foo/2"
. That's documented, and it's the same inzsh
andksh93
as in bash.
– mosvy
May 30 at 21:47
3
Note: If the length of the string is odd, this will still split it into two parts, but the second will be a character longer.
– peterh
May 31 at 7:39
add a comment |
Using parameter expansion and shell arithmetic:
The first half of the variable will be:
$var:0:$#var/2
The second half of the variable will be:
$var:$#var/2
so you could use:
printf '%sn' "$var:0:$#var/2" "$var:$#var/2"
You could also use the following awk command:
awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
$ echo abcdef | awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
abc
def
Thanks for the response!
– Gabriel Diego
May 30 at 21:19
concise and elegant solution.
– Dudi Boy
May 30 at 21:32
3
You can get rid of the$((...))
; theoff
andlen
part of the$var:off:len
substitution are already evaluated as arithmetic expressions. Example:foo=01234567; echo "$foo:0:$#foo/2 $foo:$#foo/2"
. That's documented, and it's the same inzsh
andksh93
as in bash.
– mosvy
May 30 at 21:47
3
Note: If the length of the string is odd, this will still split it into two parts, but the second will be a character longer.
– peterh
May 31 at 7:39
add a comment |
Using parameter expansion and shell arithmetic:
The first half of the variable will be:
$var:0:$#var/2
The second half of the variable will be:
$var:$#var/2
so you could use:
printf '%sn' "$var:0:$#var/2" "$var:$#var/2"
You could also use the following awk command:
awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
$ echo abcdef | awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
abc
def
Using parameter expansion and shell arithmetic:
The first half of the variable will be:
$var:0:$#var/2
The second half of the variable will be:
$var:$#var/2
so you could use:
printf '%sn' "$var:0:$#var/2" "$var:$#var/2"
You could also use the following awk command:
awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
$ echo abcdef | awk 'BEGINFS=""for(i=1;i<=NF/2;i++)printf $iprintf "n"for(i=NF/2+1;i<=NF;i++)printf $iprintf "n"'
abc
def
edited May 30 at 22:07
answered May 30 at 21:18
Jesse_bJesse_b
16.1k34078
16.1k34078
Thanks for the response!
– Gabriel Diego
May 30 at 21:19
concise and elegant solution.
– Dudi Boy
May 30 at 21:32
3
You can get rid of the$((...))
; theoff
andlen
part of the$var:off:len
substitution are already evaluated as arithmetic expressions. Example:foo=01234567; echo "$foo:0:$#foo/2 $foo:$#foo/2"
. That's documented, and it's the same inzsh
andksh93
as in bash.
– mosvy
May 30 at 21:47
3
Note: If the length of the string is odd, this will still split it into two parts, but the second will be a character longer.
– peterh
May 31 at 7:39
add a comment |
Thanks for the response!
– Gabriel Diego
May 30 at 21:19
concise and elegant solution.
– Dudi Boy
May 30 at 21:32
3
You can get rid of the$((...))
; theoff
andlen
part of the$var:off:len
substitution are already evaluated as arithmetic expressions. Example:foo=01234567; echo "$foo:0:$#foo/2 $foo:$#foo/2"
. That's documented, and it's the same inzsh
andksh93
as in bash.
– mosvy
May 30 at 21:47
3
Note: If the length of the string is odd, this will still split it into two parts, but the second will be a character longer.
– peterh
May 31 at 7:39
Thanks for the response!
– Gabriel Diego
May 30 at 21:19
Thanks for the response!
– Gabriel Diego
May 30 at 21:19
concise and elegant solution.
– Dudi Boy
May 30 at 21:32
concise and elegant solution.
– Dudi Boy
May 30 at 21:32
3
3
You can get rid of the
$((...))
; the off
and len
part of the $var:off:len
substitution are already evaluated as arithmetic expressions. Example: foo=01234567; echo "$foo:0:$#foo/2 $foo:$#foo/2"
. That's documented, and it's the same in zsh
and ksh93
as in bash.– mosvy
May 30 at 21:47
You can get rid of the
$((...))
; the off
and len
part of the $var:off:len
substitution are already evaluated as arithmetic expressions. Example: foo=01234567; echo "$foo:0:$#foo/2 $foo:$#foo/2"
. That's documented, and it's the same in zsh
and ksh93
as in bash.– mosvy
May 30 at 21:47
3
3
Note: If the length of the string is odd, this will still split it into two parts, but the second will be a character longer.
– peterh
May 31 at 7:39
Note: If the length of the string is odd, this will still split it into two parts, but the second will be a character longer.
– peterh
May 31 at 7:39
add a comment |
Using split
, here strings and command substitution:
var=abcdef
printf '%sn' "$(split -n1/2 <<<$var)" "$(split -n2/2 <<<$var)"
add a comment |
Using split
, here strings and command substitution:
var=abcdef
printf '%sn' "$(split -n1/2 <<<$var)" "$(split -n2/2 <<<$var)"
add a comment |
Using split
, here strings and command substitution:
var=abcdef
printf '%sn' "$(split -n1/2 <<<$var)" "$(split -n2/2 <<<$var)"
Using split
, here strings and command substitution:
var=abcdef
printf '%sn' "$(split -n1/2 <<<$var)" "$(split -n2/2 <<<$var)"
answered May 30 at 21:42
FreddyFreddy
4,1431419
4,1431419
add a comment |
add a comment |
Another awk
script can be:
echo abcdef | awk 'print substr($0,1,length/2); print substr($0,length/2+1)'
1
Note that it doesn't work with mawk or busybox awk because of the syntax ambiguity of division/
and the/ERE/
operator, and the special case of()
being optional forlength
(still those implementations are not POSIX compliant in that case). Usinglength()
orlength($0)
here instead oflength
would help for those. You could also doawk 'BEGINhalf = int(length(ARGV[1]) / 2); print substr(ARGV[1], 1, half) ORS substr(ARGV[1], half+1)' abcdef
which would save the pipe and extra process and make it work even if the string contains newline characters.
– Stéphane Chazelas
May 31 at 10:55
add a comment |
Another awk
script can be:
echo abcdef | awk 'print substr($0,1,length/2); print substr($0,length/2+1)'
1
Note that it doesn't work with mawk or busybox awk because of the syntax ambiguity of division/
and the/ERE/
operator, and the special case of()
being optional forlength
(still those implementations are not POSIX compliant in that case). Usinglength()
orlength($0)
here instead oflength
would help for those. You could also doawk 'BEGINhalf = int(length(ARGV[1]) / 2); print substr(ARGV[1], 1, half) ORS substr(ARGV[1], half+1)' abcdef
which would save the pipe and extra process and make it work even if the string contains newline characters.
– Stéphane Chazelas
May 31 at 10:55
add a comment |
Another awk
script can be:
echo abcdef | awk 'print substr($0,1,length/2); print substr($0,length/2+1)'
Another awk
script can be:
echo abcdef | awk 'print substr($0,1,length/2); print substr($0,length/2+1)'
answered May 30 at 21:37
Dudi BoyDudi Boy
37127
37127
1
Note that it doesn't work with mawk or busybox awk because of the syntax ambiguity of division/
and the/ERE/
operator, and the special case of()
being optional forlength
(still those implementations are not POSIX compliant in that case). Usinglength()
orlength($0)
here instead oflength
would help for those. You could also doawk 'BEGINhalf = int(length(ARGV[1]) / 2); print substr(ARGV[1], 1, half) ORS substr(ARGV[1], half+1)' abcdef
which would save the pipe and extra process and make it work even if the string contains newline characters.
– Stéphane Chazelas
May 31 at 10:55
add a comment |
1
Note that it doesn't work with mawk or busybox awk because of the syntax ambiguity of division/
and the/ERE/
operator, and the special case of()
being optional forlength
(still those implementations are not POSIX compliant in that case). Usinglength()
orlength($0)
here instead oflength
would help for those. You could also doawk 'BEGINhalf = int(length(ARGV[1]) / 2); print substr(ARGV[1], 1, half) ORS substr(ARGV[1], half+1)' abcdef
which would save the pipe and extra process and make it work even if the string contains newline characters.
– Stéphane Chazelas
May 31 at 10:55
1
1
Note that it doesn't work with mawk or busybox awk because of the syntax ambiguity of division
/
and the /ERE/
operator, and the special case of ()
being optional for length
(still those implementations are not POSIX compliant in that case). Using length()
or length($0)
here instead of length
would help for those. You could also do awk 'BEGINhalf = int(length(ARGV[1]) / 2); print substr(ARGV[1], 1, half) ORS substr(ARGV[1], half+1)' abcdef
which would save the pipe and extra process and make it work even if the string contains newline characters.– Stéphane Chazelas
May 31 at 10:55
Note that it doesn't work with mawk or busybox awk because of the syntax ambiguity of division
/
and the /ERE/
operator, and the special case of ()
being optional for length
(still those implementations are not POSIX compliant in that case). Using length()
or length($0)
here instead of length
would help for those. You could also do awk 'BEGINhalf = int(length(ARGV[1]) / 2); print substr(ARGV[1], 1, half) ORS substr(ARGV[1], half+1)' abcdef
which would save the pipe and extra process and make it work even if the string contains newline characters.– Stéphane Chazelas
May 31 at 10:55
add a comment |
Python 3
s = input() # Take one line of input from stdin.
x = len(s) // 2 # Get middle of string. "//" is floor division
print(s[:x], s[x:], sep="n") # Print "s" up to "x", then "s" past "x", joined on newlines.
For example,
$ echo abcdef | python3 -c 's = input(); x = len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
def
If the string length is not an even number, the second line will be longer. E.g.
$ echo abcdefg | python3 -c 's = input(); x= len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
defg
add a comment |
Python 3
s = input() # Take one line of input from stdin.
x = len(s) // 2 # Get middle of string. "//" is floor division
print(s[:x], s[x:], sep="n") # Print "s" up to "x", then "s" past "x", joined on newlines.
For example,
$ echo abcdef | python3 -c 's = input(); x = len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
def
If the string length is not an even number, the second line will be longer. E.g.
$ echo abcdefg | python3 -c 's = input(); x= len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
defg
add a comment |
Python 3
s = input() # Take one line of input from stdin.
x = len(s) // 2 # Get middle of string. "//" is floor division
print(s[:x], s[x:], sep="n") # Print "s" up to "x", then "s" past "x", joined on newlines.
For example,
$ echo abcdef | python3 -c 's = input(); x = len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
def
If the string length is not an even number, the second line will be longer. E.g.
$ echo abcdefg | python3 -c 's = input(); x= len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
defg
Python 3
s = input() # Take one line of input from stdin.
x = len(s) // 2 # Get middle of string. "//" is floor division
print(s[:x], s[x:], sep="n") # Print "s" up to "x", then "s" past "x", joined on newlines.
For example,
$ echo abcdef | python3 -c 's = input(); x = len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
def
If the string length is not an even number, the second line will be longer. E.g.
$ echo abcdefg | python3 -c 's = input(); x= len(s) // 2; print(s[:x], s[x:], sep="n")'
abc
defg
edited May 31 at 14:07
answered May 31 at 14:02
wjandreawjandrea
588414
588414
add a comment |
add a comment |
Gabriel Diego is a new contributor. Be nice, and check out our Code of Conduct.
Gabriel Diego is a new contributor. Be nice, and check out our Code of Conduct.
Gabriel Diego is a new contributor. Be nice, and check out our Code of Conduct.
Gabriel Diego is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f522052%2fhow-to-split-a-string-in-two-substrings-of-same-length-using-bash%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
How do you have the incoming string? Variable? Stdin? Other?
– Jeff Schaller♦
May 30 at 21:24
1
In a variable. It doesn't really matter, as anything can be worked out (stdin input can be put in a variable).
– Gabriel Diego
May 30 at 21:27
It matters for efficiency, especially if it can be possibly-gigantic. And also for convenience.
– Peter Cordes
May 31 at 10:36