Offset in split text contentTips for golfing in <all languages>Justify a text by adding spacesRectangle of textHide one message inside anotherIn a string or not?KeyPad Code to Text!Is one string contained within the other?Read ASCII-Art TextSplit me in halfSplit string on first occurrence of each characterSorting out redundant text from screen scraper application

Do native speakers use "ultima" and "proxima" frequently in spoken English?

Can you describe someone as luxurious? As in someone who likes luxurious things?

Started in 1987 vs. Starting in 1987

Center page as a whole without centering each element individually

Can you take a "free object interaction" while incapacitated?

Sort with assumptions

How can I, as DM, avoid the Conga Line of Death occurring when implementing some form of flanking rule?

Friend wants my recommendation but I don't want to give it to him

How to get directions in deep space?

Does capillary rise violate hydrostatic paradox?

How do you justify more code being written by following clean code practices?

Not hide and seek

What properties make a magic weapon befit a Rogue more than a DEX-based Fighter?

Should I be concerned about student access to a test bank?

A seasonal riddle

Extract substring according to regexp with sed or grep

Should I warn a new PhD Student?

Why didn’t Eve recognize the little cockroach as a living organism?

What is the tangent at a sharp point on a curve?

Is there a distance limit for minecart tracks?

What is this high flying aircraft over Pennsylvania?

categorizing a variable turns it from insignificant to significant

Would a primitive species be able to learn English from reading books alone?

Unfrosted light bulb



Offset in split text content


Tips for golfing in <all languages>Justify a text by adding spacesRectangle of textHide one message inside anotherIn a string or not?KeyPad Code to Text!Is one string contained within the other?Read ASCII-Art TextSplit me in halfSplit string on first occurrence of each characterSorting out redundant text from screen scraper application













7












$begingroup$


You will be given an ASCII text. This text may have zero, one or many appearances of a split a character (let's assume it will be the space character )

You will also be given an offset integer value (zero based) anywhere between zero and the length of the text.



You should calculate the relative offset inside the one split text, which contains the absolute offset, as well as the index of that very split text.

If the given offset is at the split character the last split should have the offset



It's hard to describe (comments welcome), so here are some examples



text: Lorem ipsum dolor sit amet
offset: 20

Lorem ipsum dolor sit amet
enter code here
--------------------^
000000000011111111112
012345678901234567890

Result: 2, 3
Explanation: If we split the text along the space characters, the split text, where the offset is in, is the fragment `sit` which is the 3rd split (count starts at zero) and the offset inside this fragment is 2
sit
--^
012


Some more examples



Text Offset Result
Lorem ipsum dolor sit amet 0 0, 0
^
Lorem ipsum dolor sit amet 1 1, 0
-^
Lorem ipsum dolor sit amet 2 2, 0
--^
Lorem ipsum dolor sit amet 3 3, 0
---^
Lorem ipsum dolor sit amet 4 4, 0
----^
Lorem ipsum dolor sit amet 5 5, 0
-----^
Lorem ipsum dolor sit amet 6 0, 1
------^
Lorem ipsum dolor sit amet 7 1, 1
-------^
Lorem ipsum dolor sit amet 8 2, 1
--------^
Lorem ipsum dolor sit amet 9 3, 1
---------^
Lorem ipsum dolor sit amet 10 4, 1
----------^
Lorem ipsum dolor sit amet 11 5, 1
-----------^
Lorem ipsum dolor sit amet 12 0, 2
------------^
Lorem ipsum dolor sit amet 13 1, 2
-------------^
Lorem ipsum dolor sit amet 14 2, 2
--------------^
Lorem ipsum dolor sit amet 15 3, 2
---------------^
Lorem ipsum dolor sit amet 16 4, 2
----------------^
Lorem ipsum dolor sit amet 17 5, 2
-----------------^
Lorem ipsum dolor sit amet 18 0, 3
------------------^
Lorem ipsum dolor sit amet 19 1, 3
-------------------^
Lorem ipsum dolor sit amet 20 2, 3
--------------------^
Lorem ipsum dolor sit amet 21 3, 3
---------------------^
Lorem ipsum dolor sit amet 22 0, 4
----------------------^
Lorem ipsum dolor sit amet 23 1, 4
-----------------------^
Lorem ipsum dolor sit amet 24 2, 4
------------------------^
Lorem ipsum dolor sit amet 25 3, 4
-------------------------^
Lorem ipsum dolor sit amet 26 4, 4
--------------------------^









share|improve this question









New contributor




yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$











  • $begingroup$
    If I am correctly interpreting your example, the second integer is the number of split characters in the first offset characters, the first is the character that is hit inside the chunk counted from its own origin? Do the two have anything in common?
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    @JonathanFrech I assume your thought on the second integer is correct. I don't understand your thought on the first character. And what do you mean by Do the two have anything in common??
    $endgroup$
    – yunzen
    19 hours ago










  • $begingroup$
    To me, the question appears to simply be two properties of a piece of text mangled together; I wanted to ask if there is any semantic connection between the two output integers.
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    You want to now the reason why I ask this? It's inspired by this question on SE: stackoverflow.com/questions/55235774/… And I thought it would be an interesting question on CG
    $endgroup$
    – yunzen
    18 hours ago







  • 5




    $begingroup$
    "It's hard to describe (comments welcome)". This is why the Sandbox exists. When you want to create challenges, first lay them in the sandbox and let other people help you refine it.
    $endgroup$
    – Olivier Grégoire
    15 hours ago















7












$begingroup$


You will be given an ASCII text. This text may have zero, one or many appearances of a split a character (let's assume it will be the space character )

You will also be given an offset integer value (zero based) anywhere between zero and the length of the text.



You should calculate the relative offset inside the one split text, which contains the absolute offset, as well as the index of that very split text.

If the given offset is at the split character the last split should have the offset



It's hard to describe (comments welcome), so here are some examples



text: Lorem ipsum dolor sit amet
offset: 20

Lorem ipsum dolor sit amet
enter code here
--------------------^
000000000011111111112
012345678901234567890

Result: 2, 3
Explanation: If we split the text along the space characters, the split text, where the offset is in, is the fragment `sit` which is the 3rd split (count starts at zero) and the offset inside this fragment is 2
sit
--^
012


Some more examples



Text Offset Result
Lorem ipsum dolor sit amet 0 0, 0
^
Lorem ipsum dolor sit amet 1 1, 0
-^
Lorem ipsum dolor sit amet 2 2, 0
--^
Lorem ipsum dolor sit amet 3 3, 0
---^
Lorem ipsum dolor sit amet 4 4, 0
----^
Lorem ipsum dolor sit amet 5 5, 0
-----^
Lorem ipsum dolor sit amet 6 0, 1
------^
Lorem ipsum dolor sit amet 7 1, 1
-------^
Lorem ipsum dolor sit amet 8 2, 1
--------^
Lorem ipsum dolor sit amet 9 3, 1
---------^
Lorem ipsum dolor sit amet 10 4, 1
----------^
Lorem ipsum dolor sit amet 11 5, 1
-----------^
Lorem ipsum dolor sit amet 12 0, 2
------------^
Lorem ipsum dolor sit amet 13 1, 2
-------------^
Lorem ipsum dolor sit amet 14 2, 2
--------------^
Lorem ipsum dolor sit amet 15 3, 2
---------------^
Lorem ipsum dolor sit amet 16 4, 2
----------------^
Lorem ipsum dolor sit amet 17 5, 2
-----------------^
Lorem ipsum dolor sit amet 18 0, 3
------------------^
Lorem ipsum dolor sit amet 19 1, 3
-------------------^
Lorem ipsum dolor sit amet 20 2, 3
--------------------^
Lorem ipsum dolor sit amet 21 3, 3
---------------------^
Lorem ipsum dolor sit amet 22 0, 4
----------------------^
Lorem ipsum dolor sit amet 23 1, 4
-----------------------^
Lorem ipsum dolor sit amet 24 2, 4
------------------------^
Lorem ipsum dolor sit amet 25 3, 4
-------------------------^
Lorem ipsum dolor sit amet 26 4, 4
--------------------------^









share|improve this question









New contributor




yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$











  • $begingroup$
    If I am correctly interpreting your example, the second integer is the number of split characters in the first offset characters, the first is the character that is hit inside the chunk counted from its own origin? Do the two have anything in common?
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    @JonathanFrech I assume your thought on the second integer is correct. I don't understand your thought on the first character. And what do you mean by Do the two have anything in common??
    $endgroup$
    – yunzen
    19 hours ago










  • $begingroup$
    To me, the question appears to simply be two properties of a piece of text mangled together; I wanted to ask if there is any semantic connection between the two output integers.
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    You want to now the reason why I ask this? It's inspired by this question on SE: stackoverflow.com/questions/55235774/… And I thought it would be an interesting question on CG
    $endgroup$
    – yunzen
    18 hours ago







  • 5




    $begingroup$
    "It's hard to describe (comments welcome)". This is why the Sandbox exists. When you want to create challenges, first lay them in the sandbox and let other people help you refine it.
    $endgroup$
    – Olivier Grégoire
    15 hours ago













7












7








7





$begingroup$


You will be given an ASCII text. This text may have zero, one or many appearances of a split a character (let's assume it will be the space character )

You will also be given an offset integer value (zero based) anywhere between zero and the length of the text.



You should calculate the relative offset inside the one split text, which contains the absolute offset, as well as the index of that very split text.

If the given offset is at the split character the last split should have the offset



It's hard to describe (comments welcome), so here are some examples



text: Lorem ipsum dolor sit amet
offset: 20

Lorem ipsum dolor sit amet
enter code here
--------------------^
000000000011111111112
012345678901234567890

Result: 2, 3
Explanation: If we split the text along the space characters, the split text, where the offset is in, is the fragment `sit` which is the 3rd split (count starts at zero) and the offset inside this fragment is 2
sit
--^
012


Some more examples



Text Offset Result
Lorem ipsum dolor sit amet 0 0, 0
^
Lorem ipsum dolor sit amet 1 1, 0
-^
Lorem ipsum dolor sit amet 2 2, 0
--^
Lorem ipsum dolor sit amet 3 3, 0
---^
Lorem ipsum dolor sit amet 4 4, 0
----^
Lorem ipsum dolor sit amet 5 5, 0
-----^
Lorem ipsum dolor sit amet 6 0, 1
------^
Lorem ipsum dolor sit amet 7 1, 1
-------^
Lorem ipsum dolor sit amet 8 2, 1
--------^
Lorem ipsum dolor sit amet 9 3, 1
---------^
Lorem ipsum dolor sit amet 10 4, 1
----------^
Lorem ipsum dolor sit amet 11 5, 1
-----------^
Lorem ipsum dolor sit amet 12 0, 2
------------^
Lorem ipsum dolor sit amet 13 1, 2
-------------^
Lorem ipsum dolor sit amet 14 2, 2
--------------^
Lorem ipsum dolor sit amet 15 3, 2
---------------^
Lorem ipsum dolor sit amet 16 4, 2
----------------^
Lorem ipsum dolor sit amet 17 5, 2
-----------------^
Lorem ipsum dolor sit amet 18 0, 3
------------------^
Lorem ipsum dolor sit amet 19 1, 3
-------------------^
Lorem ipsum dolor sit amet 20 2, 3
--------------------^
Lorem ipsum dolor sit amet 21 3, 3
---------------------^
Lorem ipsum dolor sit amet 22 0, 4
----------------------^
Lorem ipsum dolor sit amet 23 1, 4
-----------------------^
Lorem ipsum dolor sit amet 24 2, 4
------------------------^
Lorem ipsum dolor sit amet 25 3, 4
-------------------------^
Lorem ipsum dolor sit amet 26 4, 4
--------------------------^









share|improve this question









New contributor




yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$




You will be given an ASCII text. This text may have zero, one or many appearances of a split a character (let's assume it will be the space character )

You will also be given an offset integer value (zero based) anywhere between zero and the length of the text.



You should calculate the relative offset inside the one split text, which contains the absolute offset, as well as the index of that very split text.

If the given offset is at the split character the last split should have the offset



It's hard to describe (comments welcome), so here are some examples



text: Lorem ipsum dolor sit amet
offset: 20

Lorem ipsum dolor sit amet
enter code here
--------------------^
000000000011111111112
012345678901234567890

Result: 2, 3
Explanation: If we split the text along the space characters, the split text, where the offset is in, is the fragment `sit` which is the 3rd split (count starts at zero) and the offset inside this fragment is 2
sit
--^
012


Some more examples



Text Offset Result
Lorem ipsum dolor sit amet 0 0, 0
^
Lorem ipsum dolor sit amet 1 1, 0
-^
Lorem ipsum dolor sit amet 2 2, 0
--^
Lorem ipsum dolor sit amet 3 3, 0
---^
Lorem ipsum dolor sit amet 4 4, 0
----^
Lorem ipsum dolor sit amet 5 5, 0
-----^
Lorem ipsum dolor sit amet 6 0, 1
------^
Lorem ipsum dolor sit amet 7 1, 1
-------^
Lorem ipsum dolor sit amet 8 2, 1
--------^
Lorem ipsum dolor sit amet 9 3, 1
---------^
Lorem ipsum dolor sit amet 10 4, 1
----------^
Lorem ipsum dolor sit amet 11 5, 1
-----------^
Lorem ipsum dolor sit amet 12 0, 2
------------^
Lorem ipsum dolor sit amet 13 1, 2
-------------^
Lorem ipsum dolor sit amet 14 2, 2
--------------^
Lorem ipsum dolor sit amet 15 3, 2
---------------^
Lorem ipsum dolor sit amet 16 4, 2
----------------^
Lorem ipsum dolor sit amet 17 5, 2
-----------------^
Lorem ipsum dolor sit amet 18 0, 3
------------------^
Lorem ipsum dolor sit amet 19 1, 3
-------------------^
Lorem ipsum dolor sit amet 20 2, 3
--------------------^
Lorem ipsum dolor sit amet 21 3, 3
---------------------^
Lorem ipsum dolor sit amet 22 0, 4
----------------------^
Lorem ipsum dolor sit amet 23 1, 4
-----------------------^
Lorem ipsum dolor sit amet 24 2, 4
------------------------^
Lorem ipsum dolor sit amet 25 3, 4
-------------------------^
Lorem ipsum dolor sit amet 26 4, 4
--------------------------^






code-golf text-processing






share|improve this question









New contributor




yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 18 hours ago







yunzen













New contributor




yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 20 hours ago









yunzenyunzen

1565




1565




New contributor




yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











  • $begingroup$
    If I am correctly interpreting your example, the second integer is the number of split characters in the first offset characters, the first is the character that is hit inside the chunk counted from its own origin? Do the two have anything in common?
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    @JonathanFrech I assume your thought on the second integer is correct. I don't understand your thought on the first character. And what do you mean by Do the two have anything in common??
    $endgroup$
    – yunzen
    19 hours ago










  • $begingroup$
    To me, the question appears to simply be two properties of a piece of text mangled together; I wanted to ask if there is any semantic connection between the two output integers.
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    You want to now the reason why I ask this? It's inspired by this question on SE: stackoverflow.com/questions/55235774/… And I thought it would be an interesting question on CG
    $endgroup$
    – yunzen
    18 hours ago







  • 5




    $begingroup$
    "It's hard to describe (comments welcome)". This is why the Sandbox exists. When you want to create challenges, first lay them in the sandbox and let other people help you refine it.
    $endgroup$
    – Olivier Grégoire
    15 hours ago
















  • $begingroup$
    If I am correctly interpreting your example, the second integer is the number of split characters in the first offset characters, the first is the character that is hit inside the chunk counted from its own origin? Do the two have anything in common?
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    @JonathanFrech I assume your thought on the second integer is correct. I don't understand your thought on the first character. And what do you mean by Do the two have anything in common??
    $endgroup$
    – yunzen
    19 hours ago










  • $begingroup$
    To me, the question appears to simply be two properties of a piece of text mangled together; I wanted to ask if there is any semantic connection between the two output integers.
    $endgroup$
    – Jonathan Frech
    19 hours ago










  • $begingroup$
    You want to now the reason why I ask this? It's inspired by this question on SE: stackoverflow.com/questions/55235774/… And I thought it would be an interesting question on CG
    $endgroup$
    – yunzen
    18 hours ago







  • 5




    $begingroup$
    "It's hard to describe (comments welcome)". This is why the Sandbox exists. When you want to create challenges, first lay them in the sandbox and let other people help you refine it.
    $endgroup$
    – Olivier Grégoire
    15 hours ago















$begingroup$
If I am correctly interpreting your example, the second integer is the number of split characters in the first offset characters, the first is the character that is hit inside the chunk counted from its own origin? Do the two have anything in common?
$endgroup$
– Jonathan Frech
19 hours ago




$begingroup$
If I am correctly interpreting your example, the second integer is the number of split characters in the first offset characters, the first is the character that is hit inside the chunk counted from its own origin? Do the two have anything in common?
$endgroup$
– Jonathan Frech
19 hours ago












$begingroup$
@JonathanFrech I assume your thought on the second integer is correct. I don't understand your thought on the first character. And what do you mean by Do the two have anything in common??
$endgroup$
– yunzen
19 hours ago




$begingroup$
@JonathanFrech I assume your thought on the second integer is correct. I don't understand your thought on the first character. And what do you mean by Do the two have anything in common??
$endgroup$
– yunzen
19 hours ago












$begingroup$
To me, the question appears to simply be two properties of a piece of text mangled together; I wanted to ask if there is any semantic connection between the two output integers.
$endgroup$
– Jonathan Frech
19 hours ago




$begingroup$
To me, the question appears to simply be two properties of a piece of text mangled together; I wanted to ask if there is any semantic connection between the two output integers.
$endgroup$
– Jonathan Frech
19 hours ago












$begingroup$
You want to now the reason why I ask this? It's inspired by this question on SE: stackoverflow.com/questions/55235774/… And I thought it would be an interesting question on CG
$endgroup$
– yunzen
18 hours ago





$begingroup$
You want to now the reason why I ask this? It's inspired by this question on SE: stackoverflow.com/questions/55235774/… And I thought it would be an interesting question on CG
$endgroup$
– yunzen
18 hours ago





5




5




$begingroup$
"It's hard to describe (comments welcome)". This is why the Sandbox exists. When you want to create challenges, first lay them in the sandbox and let other people help you refine it.
$endgroup$
– Olivier Grégoire
15 hours ago




$begingroup$
"It's hard to describe (comments welcome)". This is why the Sandbox exists. When you want to create challenges, first lay them in the sandbox and let other people help you refine it.
$endgroup$
– Olivier Grégoire
15 hours ago










13 Answers
13






active

oldest

votes


















3












$begingroup$


Python 3.8, 56 bytes



lambda a,b:(x:=a[:b].split(' '))and[len(x[-1]),len(x)-1]


Try it online!






share|improve this answer









$endgroup$




















    3












    $begingroup$

    Perl 5, 47 44 bytes



    $_=substr$_,0,<>;/.* /;$_=$'=~y///c.$".y/ //



    • $_=substr$_,0,<>; to extract first n (from nextline <>) characters of input $_ and store in default argument.


    • /.* / to match largest string ending with space


    • $_=$'=~y///c.$".y/ // default argument $_ (which will be printed -p option) is set with concatenation . of length of post-match : $'=~y///c, $" space (list argument delimiter when interpolated betwen double quotes), and y/ // number of spaces in current default argument.

    TIO






    share|improve this answer











    $endgroup$












    • $begingroup$
      Oh wow! How very cryptic of you
      $endgroup$
      – yunzen
      15 hours ago


















    2












    $begingroup$


    05AB1E, 9 bytes



    £ð¡¤gsg<‚


    Port of @JonasAusevicius's Python 3.8 answer, so make sure to upvote him as well!



    Try it online or verify all test cases.



    Explanation:





    £ # Only leave the first (implicit) input-integer amount of characters
    # of the (implicit) string-input
    ð¡ # Split this by spaces
    # (Note: builtin `#` doesn't work here, because a string without spaces
    # would not be wrapped in a list)
    ¤g # Get the length of the last string in the list (without popping the list itself)
    sg< # Swap to get the list again, and get it's length minus 1
    ‚ # Pair both integers (and output the result implicitly)





    share|improve this answer









    $endgroup$




















      2












      $begingroup$

      JavaScript (Node.js), 75 70 69 70 68 bytes



      (t,o)=>[o+~(s=t.substr(0,o)).lastIndexOf(' '),s.split(' ').length-1]


      Try it online!



      No space parameter, only hardcoded (+ 2 bytes)

      -2 bytes thanks to inspiration from the Java answer by Kevin Cruijssen






      share|improve this answer










      New contributor




      yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      $endgroup$








      • 1




        $begingroup$
        o-s.lastIndexOf(d)-1 can be o+~s.lastIndexOf(d) to save a byte (here the relevant tip).
        $endgroup$
        – Kevin Cruijssen
        16 hours ago










      • $begingroup$
        Also, you take the space as input, but all the others answers thus far hardcoded the space. So either the challenge should mention a third split-character is required as input, or this answer could also hardcode the space. Not sure which of the two you intended when you made the challenge?
        $endgroup$
        – Kevin Cruijssen
        16 hours ago










      • $begingroup$
        @KevinCruijssen I used a hardcoded space now
        $endgroup$
        – yunzen
        16 hours ago










      • $begingroup$
        You can do t=>o=> instead of (t,o)=> to save a byte and then take input as f(t)(o)
        $endgroup$
        – zevee
        12 hours ago



















      2












      $begingroup$


      C# (Visual C# Interactive Compiler), 79 77 75 63 60 bytes





      a=>b=>((a=a.Substring(0,b).Split())[b=a.Length-1].Length,b);


      8 bytes saved thanks to Kevin Cruijssen and a further 3 bytes saved thanks to Embodiment of Ignorance



      Try it online!






      share|improve this answer










      New contributor




      Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      $endgroup$












      • $begingroup$
        73 bytes
        $endgroup$
        – Kevin Cruijssen
        15 hours ago







      • 1




        $begingroup$
        Cut another 10 using dynamic and saving the extra split
        $endgroup$
        – Expired Data
        15 hours ago










      • $begingroup$
        Oh smart! I need to remember that.
        $endgroup$
        – Kevin Cruijssen
        15 hours ago










      • $begingroup$
        60 bytes: tio.run/…
        $endgroup$
        – Embodiment of Ignorance
        12 hours ago



















      2












      $begingroup$


      Stax, 5 bytes



      ╓ò)♣*


      Run and debug it



      Unpacked, ungolfed, and commented, it looks like this.



      ( trim string to length
      j split on spaces
      N remove last element from array and push separately
      W until the stack is empty...
      %P pop element and print its length


      Run this one






      share|improve this answer









      $endgroup$




















        1












        $begingroup$

        APL+WIN, 33 bytes



        (1++/m),n-¯1↑(m←(m←n↑⎕)=' ')/⍳n←⎕


        Try it online! Courtesy of Dyalog Classic



        1 Indexed



        Prompts for index of character in full text string followed by string



        Outputs index of character in nth substring and substring number






        share|improve this answer









        $endgroup$




















          1












          $begingroup$

          Java 8, 83 75 bytes





          n->s->n+~(s=s.substring(0,n)).lastIndexOf(" ")+","+~-s.split(" ",-1).length


          -8 bytes implicitly thanks to inspiration from @yunzen's JavaScript answer.



          Try it online.



          Explanation:



          n->s-> // Method with integer & String parameters and String return-type
          n+~ // Return `n` minus 1, minus the following:
          (s=s.substring(0,n))// Set `s` to the first `n` characters of input-String `s`
          .lastIndexOf(" ") // and get the index of the last space
          +"," // Appended with a comma-delimiter
          s.split(" ", // Split the new `s` by spaces
          -1) // and keep empty trailing items
          +~- ... .length // And append the amount of items minus 1 to the result





          share|improve this answer











          $endgroup$




















            1












            $begingroup$


            Jelly, 7 bytes



            ḣḲẈṪ,LƊ


            A dyadic Link accepting a list of characters on the left and the 0-indexed index on the right which yields a list of integers, [character, word], again 0-indexed.



            Try it online!






            share|improve this answer











            $endgroup$












            • $begingroup$
              I think this should return [4, 4] (10-byte fix).
              $endgroup$
              – Erik the Outgolfer
              12 hours ago











            • $begingroup$
              Thanks @EriktheOutgolfer if we go with 0-indexing it works out nicely for 7.
              $endgroup$
              – Jonathan Allan
              11 hours ago


















            0












            $begingroup$

            JavaScript (ES6), 56 bytes



            Takes input as (offset)(string).





            n=>g=([c,...a],b=i=0)=>n--?g(a,b+!(i+=c!=' '||-i)):[i,b]


            Try it online!



            Commented



            n => // n = desired offset in string
            g = ( // g = recursive function taking:
            [c, ...a], // c = current character; a[] = array of remaining characters
            b = // b = index of current block
            i = 0 // i = current position within the current block
            ) => //
            n-- ? // if we haven't reached the desired offset:
            g( // do a recursive call to g:
            a, // pass the array of remaining characters
            b + !( // update b:
            i += // update i:
            c != ' ' // increment i if the current character is not a space
            || -i // or set i to zero if it is
            ) // increment b if i was set to zero, or leave it unchanged otherwise
            ) // end of recursive call
            : // else:
            [i, b] // stop recursion and return [i, b]





            share|improve this answer











            $endgroup$




















              0












              $begingroup$

              Bash, 66 bytes



              z=$(echo $i:0:o);echo $z|sed 's/^.* //g'|wc -c;set -- $z;echo $#


              1-indexed. $i contains the input, and $o contains the offset



              Explanation:



              z=$(echo $LDS:0:o); # delete the rest of the word
              echo $z|sed 's/^.* //g'|wc -c; # remove anything up to the last word, and count what's left.
              set -- $z;echo $# # find the number of words after the stuff after the offset is deleted





              share|improve this answer









              $endgroup$




















                0












                $begingroup$


                Charcoal, 14 bytes



                ≔⪪…SN θI⟦L⊟θLθ


                Try it online! Link is to verbose version of code. Explanation:



                ≔⪪…SN θ


                Truncate the input string to the given length and split on spaces.



                I⟦L⊟θLθ


                Extract the last string and take its length, then take the number of remaining strings, cast both lengths to string and implicitly print them on separate lines.






                share|improve this answer









                $endgroup$




















                  0












                  $begingroup$


                  Retina 0.8.2, 50 bytes



                  ^.+
                  $*
                  ^(1)*¶((?<-1>.)*).*
                  $2
                  ^(.*? )*(.*)
                  $.2,$#1


                  Try it online! Takes input in the order offset, string. Explanation:



                  ^.+
                  $*


                  Convert the offset to unary.



                  ^(1)*¶((?<-1>.)*).*
                  $2


                  Truncate the string to the given length. This uses .NET's balancing groups to count the same number of characters in each string.



                  ^(.*? )*(.*)
                  $.2,$#1


                  Count the number of spaces and the number of characters after the last space and output them in decimal in reverse order.






                  share|improve this answer









                  $endgroup$












                    Your Answer





                    StackExchange.ifUsing("editor", function ()
                    return StackExchange.using("mathjaxEditing", function ()
                    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
                    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
                    );
                    );
                    , "mathjax-editing");

                    StackExchange.ifUsing("editor", function ()
                    StackExchange.using("externalEditor", function ()
                    StackExchange.using("snippets", function ()
                    StackExchange.snippets.init();
                    );
                    );
                    , "code-snippets");

                    StackExchange.ready(function()
                    var channelOptions =
                    tags: "".split(" "),
                    id: "200"
                    ;
                    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
                    );



                    );






                    yunzen is a new contributor. Be nice, and check out our Code of Conduct.









                    draft saved

                    draft discarded


















                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f181794%2foffset-in-split-text-content%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown

























                    13 Answers
                    13






                    active

                    oldest

                    votes








                    13 Answers
                    13






                    active

                    oldest

                    votes









                    active

                    oldest

                    votes






                    active

                    oldest

                    votes









                    3












                    $begingroup$


                    Python 3.8, 56 bytes



                    lambda a,b:(x:=a[:b].split(' '))and[len(x[-1]),len(x)-1]


                    Try it online!






                    share|improve this answer









                    $endgroup$

















                      3












                      $begingroup$


                      Python 3.8, 56 bytes



                      lambda a,b:(x:=a[:b].split(' '))and[len(x[-1]),len(x)-1]


                      Try it online!






                      share|improve this answer









                      $endgroup$















                        3












                        3








                        3





                        $begingroup$


                        Python 3.8, 56 bytes



                        lambda a,b:(x:=a[:b].split(' '))and[len(x[-1]),len(x)-1]


                        Try it online!






                        share|improve this answer









                        $endgroup$




                        Python 3.8, 56 bytes



                        lambda a,b:(x:=a[:b].split(' '))and[len(x[-1]),len(x)-1]


                        Try it online!







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered 19 hours ago









                        Jonas AuseviciusJonas Ausevicius

                        1413




                        1413





















                            3












                            $begingroup$

                            Perl 5, 47 44 bytes



                            $_=substr$_,0,<>;/.* /;$_=$'=~y///c.$".y/ //



                            • $_=substr$_,0,<>; to extract first n (from nextline <>) characters of input $_ and store in default argument.


                            • /.* / to match largest string ending with space


                            • $_=$'=~y///c.$".y/ // default argument $_ (which will be printed -p option) is set with concatenation . of length of post-match : $'=~y///c, $" space (list argument delimiter when interpolated betwen double quotes), and y/ // number of spaces in current default argument.

                            TIO






                            share|improve this answer











                            $endgroup$












                            • $begingroup$
                              Oh wow! How very cryptic of you
                              $endgroup$
                              – yunzen
                              15 hours ago















                            3












                            $begingroup$

                            Perl 5, 47 44 bytes



                            $_=substr$_,0,<>;/.* /;$_=$'=~y///c.$".y/ //



                            • $_=substr$_,0,<>; to extract first n (from nextline <>) characters of input $_ and store in default argument.


                            • /.* / to match largest string ending with space


                            • $_=$'=~y///c.$".y/ // default argument $_ (which will be printed -p option) is set with concatenation . of length of post-match : $'=~y///c, $" space (list argument delimiter when interpolated betwen double quotes), and y/ // number of spaces in current default argument.

                            TIO






                            share|improve this answer











                            $endgroup$












                            • $begingroup$
                              Oh wow! How very cryptic of you
                              $endgroup$
                              – yunzen
                              15 hours ago













                            3












                            3








                            3





                            $begingroup$

                            Perl 5, 47 44 bytes



                            $_=substr$_,0,<>;/.* /;$_=$'=~y///c.$".y/ //



                            • $_=substr$_,0,<>; to extract first n (from nextline <>) characters of input $_ and store in default argument.


                            • /.* / to match largest string ending with space


                            • $_=$'=~y///c.$".y/ // default argument $_ (which will be printed -p option) is set with concatenation . of length of post-match : $'=~y///c, $" space (list argument delimiter when interpolated betwen double quotes), and y/ // number of spaces in current default argument.

                            TIO






                            share|improve this answer











                            $endgroup$



                            Perl 5, 47 44 bytes



                            $_=substr$_,0,<>;/.* /;$_=$'=~y///c.$".y/ //



                            • $_=substr$_,0,<>; to extract first n (from nextline <>) characters of input $_ and store in default argument.


                            • /.* / to match largest string ending with space


                            • $_=$'=~y///c.$".y/ // default argument $_ (which will be printed -p option) is set with concatenation . of length of post-match : $'=~y///c, $" space (list argument delimiter when interpolated betwen double quotes), and y/ // number of spaces in current default argument.

                            TIO







                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited 14 hours ago

























                            answered 16 hours ago









                            Nahuel FouilleulNahuel Fouilleul

                            2,815210




                            2,815210











                            • $begingroup$
                              Oh wow! How very cryptic of you
                              $endgroup$
                              – yunzen
                              15 hours ago
















                            • $begingroup$
                              Oh wow! How very cryptic of you
                              $endgroup$
                              – yunzen
                              15 hours ago















                            $begingroup$
                            Oh wow! How very cryptic of you
                            $endgroup$
                            – yunzen
                            15 hours ago




                            $begingroup$
                            Oh wow! How very cryptic of you
                            $endgroup$
                            – yunzen
                            15 hours ago











                            2












                            $begingroup$


                            05AB1E, 9 bytes



                            £ð¡¤gsg<‚


                            Port of @JonasAusevicius's Python 3.8 answer, so make sure to upvote him as well!



                            Try it online or verify all test cases.



                            Explanation:





                            £ # Only leave the first (implicit) input-integer amount of characters
                            # of the (implicit) string-input
                            ð¡ # Split this by spaces
                            # (Note: builtin `#` doesn't work here, because a string without spaces
                            # would not be wrapped in a list)
                            ¤g # Get the length of the last string in the list (without popping the list itself)
                            sg< # Swap to get the list again, and get it's length minus 1
                            ‚ # Pair both integers (and output the result implicitly)





                            share|improve this answer









                            $endgroup$

















                              2












                              $begingroup$


                              05AB1E, 9 bytes



                              £ð¡¤gsg<‚


                              Port of @JonasAusevicius's Python 3.8 answer, so make sure to upvote him as well!



                              Try it online or verify all test cases.



                              Explanation:





                              £ # Only leave the first (implicit) input-integer amount of characters
                              # of the (implicit) string-input
                              ð¡ # Split this by spaces
                              # (Note: builtin `#` doesn't work here, because a string without spaces
                              # would not be wrapped in a list)
                              ¤g # Get the length of the last string in the list (without popping the list itself)
                              sg< # Swap to get the list again, and get it's length minus 1
                              ‚ # Pair both integers (and output the result implicitly)





                              share|improve this answer









                              $endgroup$















                                2












                                2








                                2





                                $begingroup$


                                05AB1E, 9 bytes



                                £ð¡¤gsg<‚


                                Port of @JonasAusevicius's Python 3.8 answer, so make sure to upvote him as well!



                                Try it online or verify all test cases.



                                Explanation:





                                £ # Only leave the first (implicit) input-integer amount of characters
                                # of the (implicit) string-input
                                ð¡ # Split this by spaces
                                # (Note: builtin `#` doesn't work here, because a string without spaces
                                # would not be wrapped in a list)
                                ¤g # Get the length of the last string in the list (without popping the list itself)
                                sg< # Swap to get the list again, and get it's length minus 1
                                ‚ # Pair both integers (and output the result implicitly)





                                share|improve this answer









                                $endgroup$




                                05AB1E, 9 bytes



                                £ð¡¤gsg<‚


                                Port of @JonasAusevicius's Python 3.8 answer, so make sure to upvote him as well!



                                Try it online or verify all test cases.



                                Explanation:





                                £ # Only leave the first (implicit) input-integer amount of characters
                                # of the (implicit) string-input
                                ð¡ # Split this by spaces
                                # (Note: builtin `#` doesn't work here, because a string without spaces
                                # would not be wrapped in a list)
                                ¤g # Get the length of the last string in the list (without popping the list itself)
                                sg< # Swap to get the list again, and get it's length minus 1
                                ‚ # Pair both integers (and output the result implicitly)






                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered 18 hours ago









                                Kevin CruijssenKevin Cruijssen

                                40.8k566210




                                40.8k566210





















                                    2












                                    $begingroup$

                                    JavaScript (Node.js), 75 70 69 70 68 bytes



                                    (t,o)=>[o+~(s=t.substr(0,o)).lastIndexOf(' '),s.split(' ').length-1]


                                    Try it online!



                                    No space parameter, only hardcoded (+ 2 bytes)

                                    -2 bytes thanks to inspiration from the Java answer by Kevin Cruijssen






                                    share|improve this answer










                                    New contributor




                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    $endgroup$








                                    • 1




                                      $begingroup$
                                      o-s.lastIndexOf(d)-1 can be o+~s.lastIndexOf(d) to save a byte (here the relevant tip).
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      Also, you take the space as input, but all the others answers thus far hardcoded the space. So either the challenge should mention a third split-character is required as input, or this answer could also hardcode the space. Not sure which of the two you intended when you made the challenge?
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      @KevinCruijssen I used a hardcoded space now
                                      $endgroup$
                                      – yunzen
                                      16 hours ago










                                    • $begingroup$
                                      You can do t=>o=> instead of (t,o)=> to save a byte and then take input as f(t)(o)
                                      $endgroup$
                                      – zevee
                                      12 hours ago
















                                    2












                                    $begingroup$

                                    JavaScript (Node.js), 75 70 69 70 68 bytes



                                    (t,o)=>[o+~(s=t.substr(0,o)).lastIndexOf(' '),s.split(' ').length-1]


                                    Try it online!



                                    No space parameter, only hardcoded (+ 2 bytes)

                                    -2 bytes thanks to inspiration from the Java answer by Kevin Cruijssen






                                    share|improve this answer










                                    New contributor




                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    $endgroup$








                                    • 1




                                      $begingroup$
                                      o-s.lastIndexOf(d)-1 can be o+~s.lastIndexOf(d) to save a byte (here the relevant tip).
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      Also, you take the space as input, but all the others answers thus far hardcoded the space. So either the challenge should mention a third split-character is required as input, or this answer could also hardcode the space. Not sure which of the two you intended when you made the challenge?
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      @KevinCruijssen I used a hardcoded space now
                                      $endgroup$
                                      – yunzen
                                      16 hours ago










                                    • $begingroup$
                                      You can do t=>o=> instead of (t,o)=> to save a byte and then take input as f(t)(o)
                                      $endgroup$
                                      – zevee
                                      12 hours ago














                                    2












                                    2








                                    2





                                    $begingroup$

                                    JavaScript (Node.js), 75 70 69 70 68 bytes



                                    (t,o)=>[o+~(s=t.substr(0,o)).lastIndexOf(' '),s.split(' ').length-1]


                                    Try it online!



                                    No space parameter, only hardcoded (+ 2 bytes)

                                    -2 bytes thanks to inspiration from the Java answer by Kevin Cruijssen






                                    share|improve this answer










                                    New contributor




                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    $endgroup$



                                    JavaScript (Node.js), 75 70 69 70 68 bytes



                                    (t,o)=>[o+~(s=t.substr(0,o)).lastIndexOf(' '),s.split(' ').length-1]


                                    Try it online!



                                    No space parameter, only hardcoded (+ 2 bytes)

                                    -2 bytes thanks to inspiration from the Java answer by Kevin Cruijssen







                                    share|improve this answer










                                    New contributor




                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.









                                    share|improve this answer



                                    share|improve this answer








                                    edited 14 hours ago





















                                    New contributor




                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.









                                    answered 17 hours ago









                                    yunzenyunzen

                                    1565




                                    1565




                                    New contributor




                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.





                                    New contributor





                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    yunzen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.







                                    • 1




                                      $begingroup$
                                      o-s.lastIndexOf(d)-1 can be o+~s.lastIndexOf(d) to save a byte (here the relevant tip).
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      Also, you take the space as input, but all the others answers thus far hardcoded the space. So either the challenge should mention a third split-character is required as input, or this answer could also hardcode the space. Not sure which of the two you intended when you made the challenge?
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      @KevinCruijssen I used a hardcoded space now
                                      $endgroup$
                                      – yunzen
                                      16 hours ago










                                    • $begingroup$
                                      You can do t=>o=> instead of (t,o)=> to save a byte and then take input as f(t)(o)
                                      $endgroup$
                                      – zevee
                                      12 hours ago













                                    • 1




                                      $begingroup$
                                      o-s.lastIndexOf(d)-1 can be o+~s.lastIndexOf(d) to save a byte (here the relevant tip).
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      Also, you take the space as input, but all the others answers thus far hardcoded the space. So either the challenge should mention a third split-character is required as input, or this answer could also hardcode the space. Not sure which of the two you intended when you made the challenge?
                                      $endgroup$
                                      – Kevin Cruijssen
                                      16 hours ago










                                    • $begingroup$
                                      @KevinCruijssen I used a hardcoded space now
                                      $endgroup$
                                      – yunzen
                                      16 hours ago










                                    • $begingroup$
                                      You can do t=>o=> instead of (t,o)=> to save a byte and then take input as f(t)(o)
                                      $endgroup$
                                      – zevee
                                      12 hours ago








                                    1




                                    1




                                    $begingroup$
                                    o-s.lastIndexOf(d)-1 can be o+~s.lastIndexOf(d) to save a byte (here the relevant tip).
                                    $endgroup$
                                    – Kevin Cruijssen
                                    16 hours ago




                                    $begingroup$
                                    o-s.lastIndexOf(d)-1 can be o+~s.lastIndexOf(d) to save a byte (here the relevant tip).
                                    $endgroup$
                                    – Kevin Cruijssen
                                    16 hours ago












                                    $begingroup$
                                    Also, you take the space as input, but all the others answers thus far hardcoded the space. So either the challenge should mention a third split-character is required as input, or this answer could also hardcode the space. Not sure which of the two you intended when you made the challenge?
                                    $endgroup$
                                    – Kevin Cruijssen
                                    16 hours ago




                                    $begingroup$
                                    Also, you take the space as input, but all the others answers thus far hardcoded the space. So either the challenge should mention a third split-character is required as input, or this answer could also hardcode the space. Not sure which of the two you intended when you made the challenge?
                                    $endgroup$
                                    – Kevin Cruijssen
                                    16 hours ago












                                    $begingroup$
                                    @KevinCruijssen I used a hardcoded space now
                                    $endgroup$
                                    – yunzen
                                    16 hours ago




                                    $begingroup$
                                    @KevinCruijssen I used a hardcoded space now
                                    $endgroup$
                                    – yunzen
                                    16 hours ago












                                    $begingroup$
                                    You can do t=>o=> instead of (t,o)=> to save a byte and then take input as f(t)(o)
                                    $endgroup$
                                    – zevee
                                    12 hours ago





                                    $begingroup$
                                    You can do t=>o=> instead of (t,o)=> to save a byte and then take input as f(t)(o)
                                    $endgroup$
                                    – zevee
                                    12 hours ago












                                    2












                                    $begingroup$


                                    C# (Visual C# Interactive Compiler), 79 77 75 63 60 bytes





                                    a=>b=>((a=a.Substring(0,b).Split())[b=a.Length-1].Length,b);


                                    8 bytes saved thanks to Kevin Cruijssen and a further 3 bytes saved thanks to Embodiment of Ignorance



                                    Try it online!






                                    share|improve this answer










                                    New contributor




                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    $endgroup$












                                    • $begingroup$
                                      73 bytes
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago







                                    • 1




                                      $begingroup$
                                      Cut another 10 using dynamic and saving the extra split
                                      $endgroup$
                                      – Expired Data
                                      15 hours ago










                                    • $begingroup$
                                      Oh smart! I need to remember that.
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago










                                    • $begingroup$
                                      60 bytes: tio.run/…
                                      $endgroup$
                                      – Embodiment of Ignorance
                                      12 hours ago
















                                    2












                                    $begingroup$


                                    C# (Visual C# Interactive Compiler), 79 77 75 63 60 bytes





                                    a=>b=>((a=a.Substring(0,b).Split())[b=a.Length-1].Length,b);


                                    8 bytes saved thanks to Kevin Cruijssen and a further 3 bytes saved thanks to Embodiment of Ignorance



                                    Try it online!






                                    share|improve this answer










                                    New contributor




                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    $endgroup$












                                    • $begingroup$
                                      73 bytes
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago







                                    • 1




                                      $begingroup$
                                      Cut another 10 using dynamic and saving the extra split
                                      $endgroup$
                                      – Expired Data
                                      15 hours ago










                                    • $begingroup$
                                      Oh smart! I need to remember that.
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago










                                    • $begingroup$
                                      60 bytes: tio.run/…
                                      $endgroup$
                                      – Embodiment of Ignorance
                                      12 hours ago














                                    2












                                    2








                                    2





                                    $begingroup$


                                    C# (Visual C# Interactive Compiler), 79 77 75 63 60 bytes





                                    a=>b=>((a=a.Substring(0,b).Split())[b=a.Length-1].Length,b);


                                    8 bytes saved thanks to Kevin Cruijssen and a further 3 bytes saved thanks to Embodiment of Ignorance



                                    Try it online!






                                    share|improve this answer










                                    New contributor




                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    $endgroup$




                                    C# (Visual C# Interactive Compiler), 79 77 75 63 60 bytes





                                    a=>b=>((a=a.Substring(0,b).Split())[b=a.Length-1].Length,b);


                                    8 bytes saved thanks to Kevin Cruijssen and a further 3 bytes saved thanks to Embodiment of Ignorance



                                    Try it online!







                                    share|improve this answer










                                    New contributor




                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.









                                    share|improve this answer



                                    share|improve this answer








                                    edited 12 hours ago





















                                    New contributor




                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.









                                    answered 16 hours ago









                                    Expired DataExpired Data

                                    2665




                                    2665




                                    New contributor




                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.





                                    New contributor





                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    Expired Data is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.











                                    • $begingroup$
                                      73 bytes
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago







                                    • 1




                                      $begingroup$
                                      Cut another 10 using dynamic and saving the extra split
                                      $endgroup$
                                      – Expired Data
                                      15 hours ago










                                    • $begingroup$
                                      Oh smart! I need to remember that.
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago










                                    • $begingroup$
                                      60 bytes: tio.run/…
                                      $endgroup$
                                      – Embodiment of Ignorance
                                      12 hours ago

















                                    • $begingroup$
                                      73 bytes
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago







                                    • 1




                                      $begingroup$
                                      Cut another 10 using dynamic and saving the extra split
                                      $endgroup$
                                      – Expired Data
                                      15 hours ago










                                    • $begingroup$
                                      Oh smart! I need to remember that.
                                      $endgroup$
                                      – Kevin Cruijssen
                                      15 hours ago










                                    • $begingroup$
                                      60 bytes: tio.run/…
                                      $endgroup$
                                      – Embodiment of Ignorance
                                      12 hours ago
















                                    $begingroup$
                                    73 bytes
                                    $endgroup$
                                    – Kevin Cruijssen
                                    15 hours ago





                                    $begingroup$
                                    73 bytes
                                    $endgroup$
                                    – Kevin Cruijssen
                                    15 hours ago





                                    1




                                    1




                                    $begingroup$
                                    Cut another 10 using dynamic and saving the extra split
                                    $endgroup$
                                    – Expired Data
                                    15 hours ago




                                    $begingroup$
                                    Cut another 10 using dynamic and saving the extra split
                                    $endgroup$
                                    – Expired Data
                                    15 hours ago












                                    $begingroup$
                                    Oh smart! I need to remember that.
                                    $endgroup$
                                    – Kevin Cruijssen
                                    15 hours ago




                                    $begingroup$
                                    Oh smart! I need to remember that.
                                    $endgroup$
                                    – Kevin Cruijssen
                                    15 hours ago












                                    $begingroup$
                                    60 bytes: tio.run/…
                                    $endgroup$
                                    – Embodiment of Ignorance
                                    12 hours ago





                                    $begingroup$
                                    60 bytes: tio.run/…
                                    $endgroup$
                                    – Embodiment of Ignorance
                                    12 hours ago












                                    2












                                    $begingroup$


                                    Stax, 5 bytes



                                    ╓ò)♣*


                                    Run and debug it



                                    Unpacked, ungolfed, and commented, it looks like this.



                                    ( trim string to length
                                    j split on spaces
                                    N remove last element from array and push separately
                                    W until the stack is empty...
                                    %P pop element and print its length


                                    Run this one






                                    share|improve this answer









                                    $endgroup$

















                                      2












                                      $begingroup$


                                      Stax, 5 bytes



                                      ╓ò)♣*


                                      Run and debug it



                                      Unpacked, ungolfed, and commented, it looks like this.



                                      ( trim string to length
                                      j split on spaces
                                      N remove last element from array and push separately
                                      W until the stack is empty...
                                      %P pop element and print its length


                                      Run this one






                                      share|improve this answer









                                      $endgroup$















                                        2












                                        2








                                        2





                                        $begingroup$


                                        Stax, 5 bytes



                                        ╓ò)♣*


                                        Run and debug it



                                        Unpacked, ungolfed, and commented, it looks like this.



                                        ( trim string to length
                                        j split on spaces
                                        N remove last element from array and push separately
                                        W until the stack is empty...
                                        %P pop element and print its length


                                        Run this one






                                        share|improve this answer









                                        $endgroup$




                                        Stax, 5 bytes



                                        ╓ò)♣*


                                        Run and debug it



                                        Unpacked, ungolfed, and commented, it looks like this.



                                        ( trim string to length
                                        j split on spaces
                                        N remove last element from array and push separately
                                        W until the stack is empty...
                                        %P pop element and print its length


                                        Run this one







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 12 hours ago









                                        recursiverecursive

                                        5,5691322




                                        5,5691322





















                                            1












                                            $begingroup$

                                            APL+WIN, 33 bytes



                                            (1++/m),n-¯1↑(m←(m←n↑⎕)=' ')/⍳n←⎕


                                            Try it online! Courtesy of Dyalog Classic



                                            1 Indexed



                                            Prompts for index of character in full text string followed by string



                                            Outputs index of character in nth substring and substring number






                                            share|improve this answer









                                            $endgroup$

















                                              1












                                              $begingroup$

                                              APL+WIN, 33 bytes



                                              (1++/m),n-¯1↑(m←(m←n↑⎕)=' ')/⍳n←⎕


                                              Try it online! Courtesy of Dyalog Classic



                                              1 Indexed



                                              Prompts for index of character in full text string followed by string



                                              Outputs index of character in nth substring and substring number






                                              share|improve this answer









                                              $endgroup$















                                                1












                                                1








                                                1





                                                $begingroup$

                                                APL+WIN, 33 bytes



                                                (1++/m),n-¯1↑(m←(m←n↑⎕)=' ')/⍳n←⎕


                                                Try it online! Courtesy of Dyalog Classic



                                                1 Indexed



                                                Prompts for index of character in full text string followed by string



                                                Outputs index of character in nth substring and substring number






                                                share|improve this answer









                                                $endgroup$



                                                APL+WIN, 33 bytes



                                                (1++/m),n-¯1↑(m←(m←n↑⎕)=' ')/⍳n←⎕


                                                Try it online! Courtesy of Dyalog Classic



                                                1 Indexed



                                                Prompts for index of character in full text string followed by string



                                                Outputs index of character in nth substring and substring number







                                                share|improve this answer












                                                share|improve this answer



                                                share|improve this answer










                                                answered 18 hours ago









                                                GrahamGraham

                                                2,55678




                                                2,55678





















                                                    1












                                                    $begingroup$

                                                    Java 8, 83 75 bytes





                                                    n->s->n+~(s=s.substring(0,n)).lastIndexOf(" ")+","+~-s.split(" ",-1).length


                                                    -8 bytes implicitly thanks to inspiration from @yunzen's JavaScript answer.



                                                    Try it online.



                                                    Explanation:



                                                    n->s-> // Method with integer & String parameters and String return-type
                                                    n+~ // Return `n` minus 1, minus the following:
                                                    (s=s.substring(0,n))// Set `s` to the first `n` characters of input-String `s`
                                                    .lastIndexOf(" ") // and get the index of the last space
                                                    +"," // Appended with a comma-delimiter
                                                    s.split(" ", // Split the new `s` by spaces
                                                    -1) // and keep empty trailing items
                                                    +~- ... .length // And append the amount of items minus 1 to the result





                                                    share|improve this answer











                                                    $endgroup$

















                                                      1












                                                      $begingroup$

                                                      Java 8, 83 75 bytes





                                                      n->s->n+~(s=s.substring(0,n)).lastIndexOf(" ")+","+~-s.split(" ",-1).length


                                                      -8 bytes implicitly thanks to inspiration from @yunzen's JavaScript answer.



                                                      Try it online.



                                                      Explanation:



                                                      n->s-> // Method with integer & String parameters and String return-type
                                                      n+~ // Return `n` minus 1, minus the following:
                                                      (s=s.substring(0,n))// Set `s` to the first `n` characters of input-String `s`
                                                      .lastIndexOf(" ") // and get the index of the last space
                                                      +"," // Appended with a comma-delimiter
                                                      s.split(" ", // Split the new `s` by spaces
                                                      -1) // and keep empty trailing items
                                                      +~- ... .length // And append the amount of items minus 1 to the result





                                                      share|improve this answer











                                                      $endgroup$















                                                        1












                                                        1








                                                        1





                                                        $begingroup$

                                                        Java 8, 83 75 bytes





                                                        n->s->n+~(s=s.substring(0,n)).lastIndexOf(" ")+","+~-s.split(" ",-1).length


                                                        -8 bytes implicitly thanks to inspiration from @yunzen's JavaScript answer.



                                                        Try it online.



                                                        Explanation:



                                                        n->s-> // Method with integer & String parameters and String return-type
                                                        n+~ // Return `n` minus 1, minus the following:
                                                        (s=s.substring(0,n))// Set `s` to the first `n` characters of input-String `s`
                                                        .lastIndexOf(" ") // and get the index of the last space
                                                        +"," // Appended with a comma-delimiter
                                                        s.split(" ", // Split the new `s` by spaces
                                                        -1) // and keep empty trailing items
                                                        +~- ... .length // And append the amount of items minus 1 to the result





                                                        share|improve this answer











                                                        $endgroup$



                                                        Java 8, 83 75 bytes





                                                        n->s->n+~(s=s.substring(0,n)).lastIndexOf(" ")+","+~-s.split(" ",-1).length


                                                        -8 bytes implicitly thanks to inspiration from @yunzen's JavaScript answer.



                                                        Try it online.



                                                        Explanation:



                                                        n->s-> // Method with integer & String parameters and String return-type
                                                        n+~ // Return `n` minus 1, minus the following:
                                                        (s=s.substring(0,n))// Set `s` to the first `n` characters of input-String `s`
                                                        .lastIndexOf(" ") // and get the index of the last space
                                                        +"," // Appended with a comma-delimiter
                                                        s.split(" ", // Split the new `s` by spaces
                                                        -1) // and keep empty trailing items
                                                        +~- ... .length // And append the amount of items minus 1 to the result






                                                        share|improve this answer














                                                        share|improve this answer



                                                        share|improve this answer








                                                        edited 15 hours ago

























                                                        answered 15 hours ago









                                                        Kevin CruijssenKevin Cruijssen

                                                        40.8k566210




                                                        40.8k566210





















                                                            1












                                                            $begingroup$


                                                            Jelly, 7 bytes



                                                            ḣḲẈṪ,LƊ


                                                            A dyadic Link accepting a list of characters on the left and the 0-indexed index on the right which yields a list of integers, [character, word], again 0-indexed.



                                                            Try it online!






                                                            share|improve this answer











                                                            $endgroup$












                                                            • $begingroup$
                                                              I think this should return [4, 4] (10-byte fix).
                                                              $endgroup$
                                                              – Erik the Outgolfer
                                                              12 hours ago











                                                            • $begingroup$
                                                              Thanks @EriktheOutgolfer if we go with 0-indexing it works out nicely for 7.
                                                              $endgroup$
                                                              – Jonathan Allan
                                                              11 hours ago















                                                            1












                                                            $begingroup$


                                                            Jelly, 7 bytes



                                                            ḣḲẈṪ,LƊ


                                                            A dyadic Link accepting a list of characters on the left and the 0-indexed index on the right which yields a list of integers, [character, word], again 0-indexed.



                                                            Try it online!






                                                            share|improve this answer











                                                            $endgroup$












                                                            • $begingroup$
                                                              I think this should return [4, 4] (10-byte fix).
                                                              $endgroup$
                                                              – Erik the Outgolfer
                                                              12 hours ago











                                                            • $begingroup$
                                                              Thanks @EriktheOutgolfer if we go with 0-indexing it works out nicely for 7.
                                                              $endgroup$
                                                              – Jonathan Allan
                                                              11 hours ago













                                                            1












                                                            1








                                                            1





                                                            $begingroup$


                                                            Jelly, 7 bytes



                                                            ḣḲẈṪ,LƊ


                                                            A dyadic Link accepting a list of characters on the left and the 0-indexed index on the right which yields a list of integers, [character, word], again 0-indexed.



                                                            Try it online!






                                                            share|improve this answer











                                                            $endgroup$




                                                            Jelly, 7 bytes



                                                            ḣḲẈṪ,LƊ


                                                            A dyadic Link accepting a list of characters on the left and the 0-indexed index on the right which yields a list of integers, [character, word], again 0-indexed.



                                                            Try it online!







                                                            share|improve this answer














                                                            share|improve this answer



                                                            share|improve this answer








                                                            edited 11 hours ago

























                                                            answered 15 hours ago









                                                            Jonathan AllanJonathan Allan

                                                            53.2k535172




                                                            53.2k535172











                                                            • $begingroup$
                                                              I think this should return [4, 4] (10-byte fix).
                                                              $endgroup$
                                                              – Erik the Outgolfer
                                                              12 hours ago











                                                            • $begingroup$
                                                              Thanks @EriktheOutgolfer if we go with 0-indexing it works out nicely for 7.
                                                              $endgroup$
                                                              – Jonathan Allan
                                                              11 hours ago
















                                                            • $begingroup$
                                                              I think this should return [4, 4] (10-byte fix).
                                                              $endgroup$
                                                              – Erik the Outgolfer
                                                              12 hours ago











                                                            • $begingroup$
                                                              Thanks @EriktheOutgolfer if we go with 0-indexing it works out nicely for 7.
                                                              $endgroup$
                                                              – Jonathan Allan
                                                              11 hours ago















                                                            $begingroup$
                                                            I think this should return [4, 4] (10-byte fix).
                                                            $endgroup$
                                                            – Erik the Outgolfer
                                                            12 hours ago





                                                            $begingroup$
                                                            I think this should return [4, 4] (10-byte fix).
                                                            $endgroup$
                                                            – Erik the Outgolfer
                                                            12 hours ago













                                                            $begingroup$
                                                            Thanks @EriktheOutgolfer if we go with 0-indexing it works out nicely for 7.
                                                            $endgroup$
                                                            – Jonathan Allan
                                                            11 hours ago




                                                            $begingroup$
                                                            Thanks @EriktheOutgolfer if we go with 0-indexing it works out nicely for 7.
                                                            $endgroup$
                                                            – Jonathan Allan
                                                            11 hours ago











                                                            0












                                                            $begingroup$

                                                            JavaScript (ES6), 56 bytes



                                                            Takes input as (offset)(string).





                                                            n=>g=([c,...a],b=i=0)=>n--?g(a,b+!(i+=c!=' '||-i)):[i,b]


                                                            Try it online!



                                                            Commented



                                                            n => // n = desired offset in string
                                                            g = ( // g = recursive function taking:
                                                            [c, ...a], // c = current character; a[] = array of remaining characters
                                                            b = // b = index of current block
                                                            i = 0 // i = current position within the current block
                                                            ) => //
                                                            n-- ? // if we haven't reached the desired offset:
                                                            g( // do a recursive call to g:
                                                            a, // pass the array of remaining characters
                                                            b + !( // update b:
                                                            i += // update i:
                                                            c != ' ' // increment i if the current character is not a space
                                                            || -i // or set i to zero if it is
                                                            ) // increment b if i was set to zero, or leave it unchanged otherwise
                                                            ) // end of recursive call
                                                            : // else:
                                                            [i, b] // stop recursion and return [i, b]





                                                            share|improve this answer











                                                            $endgroup$

















                                                              0












                                                              $begingroup$

                                                              JavaScript (ES6), 56 bytes



                                                              Takes input as (offset)(string).





                                                              n=>g=([c,...a],b=i=0)=>n--?g(a,b+!(i+=c!=' '||-i)):[i,b]


                                                              Try it online!



                                                              Commented



                                                              n => // n = desired offset in string
                                                              g = ( // g = recursive function taking:
                                                              [c, ...a], // c = current character; a[] = array of remaining characters
                                                              b = // b = index of current block
                                                              i = 0 // i = current position within the current block
                                                              ) => //
                                                              n-- ? // if we haven't reached the desired offset:
                                                              g( // do a recursive call to g:
                                                              a, // pass the array of remaining characters
                                                              b + !( // update b:
                                                              i += // update i:
                                                              c != ' ' // increment i if the current character is not a space
                                                              || -i // or set i to zero if it is
                                                              ) // increment b if i was set to zero, or leave it unchanged otherwise
                                                              ) // end of recursive call
                                                              : // else:
                                                              [i, b] // stop recursion and return [i, b]





                                                              share|improve this answer











                                                              $endgroup$















                                                                0












                                                                0








                                                                0





                                                                $begingroup$

                                                                JavaScript (ES6), 56 bytes



                                                                Takes input as (offset)(string).





                                                                n=>g=([c,...a],b=i=0)=>n--?g(a,b+!(i+=c!=' '||-i)):[i,b]


                                                                Try it online!



                                                                Commented



                                                                n => // n = desired offset in string
                                                                g = ( // g = recursive function taking:
                                                                [c, ...a], // c = current character; a[] = array of remaining characters
                                                                b = // b = index of current block
                                                                i = 0 // i = current position within the current block
                                                                ) => //
                                                                n-- ? // if we haven't reached the desired offset:
                                                                g( // do a recursive call to g:
                                                                a, // pass the array of remaining characters
                                                                b + !( // update b:
                                                                i += // update i:
                                                                c != ' ' // increment i if the current character is not a space
                                                                || -i // or set i to zero if it is
                                                                ) // increment b if i was set to zero, or leave it unchanged otherwise
                                                                ) // end of recursive call
                                                                : // else:
                                                                [i, b] // stop recursion and return [i, b]





                                                                share|improve this answer











                                                                $endgroup$



                                                                JavaScript (ES6), 56 bytes



                                                                Takes input as (offset)(string).





                                                                n=>g=([c,...a],b=i=0)=>n--?g(a,b+!(i+=c!=' '||-i)):[i,b]


                                                                Try it online!



                                                                Commented



                                                                n => // n = desired offset in string
                                                                g = ( // g = recursive function taking:
                                                                [c, ...a], // c = current character; a[] = array of remaining characters
                                                                b = // b = index of current block
                                                                i = 0 // i = current position within the current block
                                                                ) => //
                                                                n-- ? // if we haven't reached the desired offset:
                                                                g( // do a recursive call to g:
                                                                a, // pass the array of remaining characters
                                                                b + !( // update b:
                                                                i += // update i:
                                                                c != ' ' // increment i if the current character is not a space
                                                                || -i // or set i to zero if it is
                                                                ) // increment b if i was set to zero, or leave it unchanged otherwise
                                                                ) // end of recursive call
                                                                : // else:
                                                                [i, b] // stop recursion and return [i, b]






                                                                share|improve this answer














                                                                share|improve this answer



                                                                share|improve this answer








                                                                edited 13 hours ago

























                                                                answered 13 hours ago









                                                                ArnauldArnauld

                                                                79.2k796330




                                                                79.2k796330





















                                                                    0












                                                                    $begingroup$

                                                                    Bash, 66 bytes



                                                                    z=$(echo $i:0:o);echo $z|sed 's/^.* //g'|wc -c;set -- $z;echo $#


                                                                    1-indexed. $i contains the input, and $o contains the offset



                                                                    Explanation:



                                                                    z=$(echo $LDS:0:o); # delete the rest of the word
                                                                    echo $z|sed 's/^.* //g'|wc -c; # remove anything up to the last word, and count what's left.
                                                                    set -- $z;echo $# # find the number of words after the stuff after the offset is deleted





                                                                    share|improve this answer









                                                                    $endgroup$

















                                                                      0












                                                                      $begingroup$

                                                                      Bash, 66 bytes



                                                                      z=$(echo $i:0:o);echo $z|sed 's/^.* //g'|wc -c;set -- $z;echo $#


                                                                      1-indexed. $i contains the input, and $o contains the offset



                                                                      Explanation:



                                                                      z=$(echo $LDS:0:o); # delete the rest of the word
                                                                      echo $z|sed 's/^.* //g'|wc -c; # remove anything up to the last word, and count what's left.
                                                                      set -- $z;echo $# # find the number of words after the stuff after the offset is deleted





                                                                      share|improve this answer









                                                                      $endgroup$















                                                                        0












                                                                        0








                                                                        0





                                                                        $begingroup$

                                                                        Bash, 66 bytes



                                                                        z=$(echo $i:0:o);echo $z|sed 's/^.* //g'|wc -c;set -- $z;echo $#


                                                                        1-indexed. $i contains the input, and $o contains the offset



                                                                        Explanation:



                                                                        z=$(echo $LDS:0:o); # delete the rest of the word
                                                                        echo $z|sed 's/^.* //g'|wc -c; # remove anything up to the last word, and count what's left.
                                                                        set -- $z;echo $# # find the number of words after the stuff after the offset is deleted





                                                                        share|improve this answer









                                                                        $endgroup$



                                                                        Bash, 66 bytes



                                                                        z=$(echo $i:0:o);echo $z|sed 's/^.* //g'|wc -c;set -- $z;echo $#


                                                                        1-indexed. $i contains the input, and $o contains the offset



                                                                        Explanation:



                                                                        z=$(echo $LDS:0:o); # delete the rest of the word
                                                                        echo $z|sed 's/^.* //g'|wc -c; # remove anything up to the last word, and count what's left.
                                                                        set -- $z;echo $# # find the number of words after the stuff after the offset is deleted






                                                                        share|improve this answer












                                                                        share|improve this answer



                                                                        share|improve this answer










                                                                        answered 12 hours ago









                                                                        zeveezevee

                                                                        58029




                                                                        58029





















                                                                            0












                                                                            $begingroup$


                                                                            Charcoal, 14 bytes



                                                                            ≔⪪…SN θI⟦L⊟θLθ


                                                                            Try it online! Link is to verbose version of code. Explanation:



                                                                            ≔⪪…SN θ


                                                                            Truncate the input string to the given length and split on spaces.



                                                                            I⟦L⊟θLθ


                                                                            Extract the last string and take its length, then take the number of remaining strings, cast both lengths to string and implicitly print them on separate lines.






                                                                            share|improve this answer









                                                                            $endgroup$

















                                                                              0












                                                                              $begingroup$


                                                                              Charcoal, 14 bytes



                                                                              ≔⪪…SN θI⟦L⊟θLθ


                                                                              Try it online! Link is to verbose version of code. Explanation:



                                                                              ≔⪪…SN θ


                                                                              Truncate the input string to the given length and split on spaces.



                                                                              I⟦L⊟θLθ


                                                                              Extract the last string and take its length, then take the number of remaining strings, cast both lengths to string and implicitly print them on separate lines.






                                                                              share|improve this answer









                                                                              $endgroup$















                                                                                0












                                                                                0








                                                                                0





                                                                                $begingroup$


                                                                                Charcoal, 14 bytes



                                                                                ≔⪪…SN θI⟦L⊟θLθ


                                                                                Try it online! Link is to verbose version of code. Explanation:



                                                                                ≔⪪…SN θ


                                                                                Truncate the input string to the given length and split on spaces.



                                                                                I⟦L⊟θLθ


                                                                                Extract the last string and take its length, then take the number of remaining strings, cast both lengths to string and implicitly print them on separate lines.






                                                                                share|improve this answer









                                                                                $endgroup$




                                                                                Charcoal, 14 bytes



                                                                                ≔⪪…SN θI⟦L⊟θLθ


                                                                                Try it online! Link is to verbose version of code. Explanation:



                                                                                ≔⪪…SN θ


                                                                                Truncate the input string to the given length and split on spaces.



                                                                                I⟦L⊟θLθ


                                                                                Extract the last string and take its length, then take the number of remaining strings, cast both lengths to string and implicitly print them on separate lines.







                                                                                share|improve this answer












                                                                                share|improve this answer



                                                                                share|improve this answer










                                                                                answered 6 hours ago









                                                                                NeilNeil

                                                                                81.8k745178




                                                                                81.8k745178





















                                                                                    0












                                                                                    $begingroup$


                                                                                    Retina 0.8.2, 50 bytes



                                                                                    ^.+
                                                                                    $*
                                                                                    ^(1)*¶((?<-1>.)*).*
                                                                                    $2
                                                                                    ^(.*? )*(.*)
                                                                                    $.2,$#1


                                                                                    Try it online! Takes input in the order offset, string. Explanation:



                                                                                    ^.+
                                                                                    $*


                                                                                    Convert the offset to unary.



                                                                                    ^(1)*¶((?<-1>.)*).*
                                                                                    $2


                                                                                    Truncate the string to the given length. This uses .NET's balancing groups to count the same number of characters in each string.



                                                                                    ^(.*? )*(.*)
                                                                                    $.2,$#1


                                                                                    Count the number of spaces and the number of characters after the last space and output them in decimal in reverse order.






                                                                                    share|improve this answer









                                                                                    $endgroup$

















                                                                                      0












                                                                                      $begingroup$


                                                                                      Retina 0.8.2, 50 bytes



                                                                                      ^.+
                                                                                      $*
                                                                                      ^(1)*¶((?<-1>.)*).*
                                                                                      $2
                                                                                      ^(.*? )*(.*)
                                                                                      $.2,$#1


                                                                                      Try it online! Takes input in the order offset, string. Explanation:



                                                                                      ^.+
                                                                                      $*


                                                                                      Convert the offset to unary.



                                                                                      ^(1)*¶((?<-1>.)*).*
                                                                                      $2


                                                                                      Truncate the string to the given length. This uses .NET's balancing groups to count the same number of characters in each string.



                                                                                      ^(.*? )*(.*)
                                                                                      $.2,$#1


                                                                                      Count the number of spaces and the number of characters after the last space and output them in decimal in reverse order.






                                                                                      share|improve this answer









                                                                                      $endgroup$















                                                                                        0












                                                                                        0








                                                                                        0





                                                                                        $begingroup$


                                                                                        Retina 0.8.2, 50 bytes



                                                                                        ^.+
                                                                                        $*
                                                                                        ^(1)*¶((?<-1>.)*).*
                                                                                        $2
                                                                                        ^(.*? )*(.*)
                                                                                        $.2,$#1


                                                                                        Try it online! Takes input in the order offset, string. Explanation:



                                                                                        ^.+
                                                                                        $*


                                                                                        Convert the offset to unary.



                                                                                        ^(1)*¶((?<-1>.)*).*
                                                                                        $2


                                                                                        Truncate the string to the given length. This uses .NET's balancing groups to count the same number of characters in each string.



                                                                                        ^(.*? )*(.*)
                                                                                        $.2,$#1


                                                                                        Count the number of spaces and the number of characters after the last space and output them in decimal in reverse order.






                                                                                        share|improve this answer









                                                                                        $endgroup$




                                                                                        Retina 0.8.2, 50 bytes



                                                                                        ^.+
                                                                                        $*
                                                                                        ^(1)*¶((?<-1>.)*).*
                                                                                        $2
                                                                                        ^(.*? )*(.*)
                                                                                        $.2,$#1


                                                                                        Try it online! Takes input in the order offset, string. Explanation:



                                                                                        ^.+
                                                                                        $*


                                                                                        Convert the offset to unary.



                                                                                        ^(1)*¶((?<-1>.)*).*
                                                                                        $2


                                                                                        Truncate the string to the given length. This uses .NET's balancing groups to count the same number of characters in each string.



                                                                                        ^(.*? )*(.*)
                                                                                        $.2,$#1


                                                                                        Count the number of spaces and the number of characters after the last space and output them in decimal in reverse order.







                                                                                        share|improve this answer












                                                                                        share|improve this answer



                                                                                        share|improve this answer










                                                                                        answered 6 hours ago









                                                                                        NeilNeil

                                                                                        81.8k745178




                                                                                        81.8k745178




















                                                                                            yunzen is a new contributor. Be nice, and check out our Code of Conduct.









                                                                                            draft saved

                                                                                            draft discarded


















                                                                                            yunzen is a new contributor. Be nice, and check out our Code of Conduct.












                                                                                            yunzen is a new contributor. Be nice, and check out our Code of Conduct.











                                                                                            yunzen is a new contributor. Be nice, and check out our Code of Conduct.














                                                                                            If this is an answer to a challenge…



                                                                                            • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                                                            • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                                                              Explanations of your answer make it more interesting to read and are very much encouraged.


                                                                                            • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                                                                            More generally…



                                                                                            • …Please make sure to answer the question and provide sufficient detail.


                                                                                            • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                                                                            draft saved


                                                                                            draft discarded














                                                                                            StackExchange.ready(
                                                                                            function ()
                                                                                            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f181794%2foffset-in-split-text-content%23new-answer', 'question_page');

                                                                                            );

                                                                                            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







                                                                                            Popular posts from this blog

                                                                                            getting Checkpoint VPN SSL Network Extender working in the command lineHow to connect to CheckPoint VPN on Ubuntu 18.04LTS?Will the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayVPN SSL Network Extender in FirefoxLinux Checkpoint SNX tool configuration issuesCheck Point - Connect under Linux - snx + OTPSNX VPN Ububuntu 18.XXUsing Checkpoint VPN SSL Network Extender CLI with certificateVPN with network manager (nm-applet) is not workingWill the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayImport VPN config files to NetworkManager from command lineTrouble connecting to VPN using network-manager, while command line worksStart a VPN connection with PPTP protocol on command linestarting a docker service daemon breaks the vpn networkCan't connect to vpn with Network-managerVPN SSL Network Extender in FirefoxUsing Checkpoint VPN SSL Network Extender CLI with certificate

                                                                                            대한민국 목차 국명 지리 역사 정치 국방 경제 사회 문화 국제 순위 관련 항목 각주 외부 링크 둘러보기 메뉴북위 37° 34′ 08″ 동경 126° 58′ 36″ / 북위 37.568889° 동경 126.976667°  / 37.568889; 126.976667ehThe Korean Repository문단을 편집문단을 편집추가해Clarkson PLC 사Report for Selected Countries and Subjects-Korea“Human Development Index and its components: P.198”“http://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EA%B5%AD%EA%B8%B0%EB%B2%95”"한국은 국제법상 한반도 유일 합법정부 아니다" - 오마이뉴스 모바일Report for Selected Countries and Subjects: South Korea격동의 역사와 함께한 조선일보 90년 : 조선일보 인수해 혁신시킨 신석우, 임시정부 때는 '대한민국' 국호(國號) 정해《우리가 몰랐던 우리 역사: 나라 이름의 비밀을 찾아가는 역사 여행》“남북 공식호칭 ‘남한’‘북한’으로 쓴다”“Corea 대 Korea, 누가 이긴 거야?”국내기후자료 - 한국[김대중 前 대통령 서거] 과감한 구조개혁 'DJ노믹스'로 최단기간 환란극복 :: 네이버 뉴스“이라크 "韓-쿠르드 유전개발 MOU 승인 안해"(종합)”“해외 우리국민 추방사례 43%가 일본”차기전차 K2'흑표'의 세계 최고 전력 분석, 쿠키뉴스 엄기영, 2007-03-02두산인프라, 헬기잡는 장갑차 'K21'...내년부터 공급, 고뉴스 이대준, 2008-10-30과거 내용 찾기mk 뉴스 - 구매력 기준으로 보면 한국 1인당 소득 3만弗과거 내용 찾기"The N-11: More Than an Acronym"Archived조선일보 최우석, 2008-11-01Global 500 2008: Countries - South Korea“몇년째 '시한폭탄'... 가계부채, 올해는 터질까”가구당 부채 5000만원 처음 넘어서“‘빚’으로 내몰리는 사회.. 위기의 가계대출”“[경제365] 공공부문 부채 급증…800조 육박”“"소득 양극화 다소 완화...불평등은 여전"”“공정사회·공생발전 한참 멀었네”iSuppli,08年2QのDRAMシェア・ランキングを発表(08/8/11)South Korea dominates shipbuilding industry | Stock Market News & Stocks to Watch from StraightStocks한국 자동차 생산, 3년 연속 세계 5위자동차수출 '현대-삼성 웃고 기아-대우-쌍용은 울고' 과거 내용 찾기동반성장위 창립 1주년 맞아Archived"중기적합 3개업종 합의 무시한 채 선정"李대통령, 사업 무분별 확장 소상공인 생계 위협 질타삼성-LG, 서민업종인 빵·분식사업 잇따라 철수상생은 뒷전…SSM ‘몸집 불리기’ 혈안Archived“경부고속도에 '아시안하이웨이' 표지판”'철의 실크로드' 앞서 '말(言)의 실크로드'부터, 프레시안 정창현, 2008-10-01“'서울 지하철은 안전한가?'”“서울시 “올해 안에 모든 지하철역 스크린도어 설치””“부산지하철 1,2호선 승강장 안전펜스 설치 완료”“전교조, 정부 노조 통계서 처음 빠져”“[Weekly BIZ] 도요타 '제로 이사회'가 리콜 사태 불러들였다”“S Korea slams high tuition costs”““정치가 여론 양극화 부채질… 합리주의 절실””“〈"`촛불집회'는 민주주의의 질적 변화 상징"〉”““촛불집회가 민주주의 왜곡 초래””“국민 65%, "한국 노사관계 대립적"”“한국 국가경쟁력 27위‥노사관계 '꼴찌'”“제대로 형성되지 않은 대한민국 이념지형”“[신년기획-갈등의 시대] 갈등지수 OECD 4위…사회적 손실 GDP 27% 무려 300조”“2012 총선-대선의 키워드는 '국민과 소통'”“한국 삶의 질 27위, 2000년과 2008년 연속 하위권 머물러”“[해피 코리아] 행복점수 68점…해외 평가선 '낙제점'”“한국 어린이·청소년 행복지수 3년 연속 OECD ‘꼴찌’”“한국 이혼율 OECD중 8위”“[통계청] 한국 이혼율 OECD 4위”“오피니언 [이렇게 생각한다] `부부의 날` 에 돌아본 이혼율 1위 한국”“Suicide Rates by Country, Global Health Observatory Data Repository.”“1. 또 다른 차별”“오피니언 [편집자에게] '왕따'와 '패거리 정치' 심리는 닮은꼴”“[미래한국리포트] 무한경쟁에 빠진 대한민국”“대학생 98% "외모가 경쟁력이라는 말 동의"”“특급호텔 웨딩·200만원대 유모차… "남보다 더…" 호화病, 고질병 됐다”“[스트레스 공화국] ① 경쟁사회, 스트레스 쌓인다”““매일 30여명 자살 한국, 의사보다 무속인에…””“"자살 부르는 '우울증', 환자 중 85% 치료 안 받아"”“정신병원을 가다”“대한민국도 ‘묻지마 범죄’,안전지대 아니다”“유엔 "학생 '성적 지향'에 따른 차별 금지하라"”“유엔아동권리위원회 보고서 및 번역본 원문”“고졸 성공스토리 담은 '제빵왕 김탁구' 드라마 나온다”“‘빛 좋은 개살구’ 고졸 취업…실습 대신 착취”원본 문서“정신건강, 사회적 편견부터 고쳐드립니다”‘소통’과 ‘행복’에 목 마른 사회가 잠들어 있던 ‘심리학’ 깨웠다“[포토] 사유리-곽금주 교수의 유쾌한 심리상담”“"올해 한국인 평균 영화관람횟수 세계 1위"(종합)”“[게임연중기획] 게임은 문화다-여가활동 1순위 게임”“영화속 ‘영어 지상주의’ …“왠지 씁쓸한데””“2월 `신문 부수 인증기관` 지정..방송법 후속작업”“무료신문 성장동력 ‘차별성’과 ‘갈등해소’”대한민국 국회 법률지식정보시스템"Pew Research Center's Religion & Public Life Project: South Korea"“amp;vwcd=MT_ZTITLE&path=인구·가구%20>%20인구총조사%20>%20인구부문%20>%20 총조사인구(2005)%20>%20전수부문&oper_YN=Y&item=&keyword=종교별%20인구& amp;lang_mode=kor&list_id= 2005년 통계청 인구 총조사”원본 문서“한국인이 좋아하는 취미와 운동 (2004-2009)”“한국인이 좋아하는 취미와 운동 (2004-2014)”Archived“한국, `부분적 언론자유국' 강등〈프리덤하우스〉”“국경없는기자회 "한국, 인터넷감시 대상국"”“한국, 조선산업 1위 유지(S. Korea Stays Top Shipbuilding Nation) RZD-Partner Portal”원본 문서“한국, 4년 만에 ‘선박건조 1위’”“옛 마산시,인터넷속도 세계 1위”“"한국 초고속 인터넷망 세계1위"”“인터넷·휴대폰 요금, 외국보다 훨씬 비싸”“한국 관세행정 6년 연속 세계 '1위'”“한국 교통사고 사망자 수 OECD 회원국 중 2위”“결핵 후진국' 한국, 환자가 급증한 이유는”“수술은 신중해야… 자칫하면 생명 위협”대한민국분류대한민국의 지도대한민국 정부대표 다국어포털대한민국 전자정부대한민국 국회한국방송공사about korea and information korea브리태니커 백과사전(한국편)론리플래닛의 정보(한국편)CIA의 세계 정보(한국편)마리암 부디아 (Mariam Budia),『한국: 하늘이 내린 한 폭의 그림』, 서울: 트랜스라틴 19호 (2012년 3월)대한민국ehehehehehehehehehehehehehehWorldCat132441370n791268020000 0001 2308 81034078029-6026373548cb11863345f(데이터)00573706ge128495

                                                                                            Cannot Extend partition with GParted The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election ResultsCan't increase partition size with GParted?GParted doesn't recognize the unallocated space after my current partitionWhat is the best way to add unallocated space located before to Ubuntu 12.04 partition with GParted live?I can't figure out how to extend my Arch home partition into free spaceGparted Linux Mint 18.1 issueTrying to extend but swap partition is showing as Unknown in Gparted, shows proper from fdiskRearrange partitions in gparted to extend a partitionUnable to extend partition even though unallocated space is next to it using GPartedAllocate free space to root partitiongparted: how to merge unallocated space with a partition