we have that string:
"I like to eat apple"
How can I obtain the result "apple"
?
asked Jun 14, 2012 at 8:35
0
// Your string
$str = "I like to eat apple";
// Split it into pieces, with the delimiter being a space. This creates an array.
$split = explode(" ", $str);
// Get the last value in the array.
// count($split) returns the total amount of values.
// Use -1 to get the index.
echo $split[count($split)-1];
answered Jun 14, 2012 at 8:36
Rick KuipersRick Kuipers
6,5962 gold badges17 silver badges37 bronze badges
2
$str = 'I like to eat apple';
echo substr($str, strrpos($str, ' ') + 1); // apple
answered Jun 14, 2012 at 8:37
flowfreeflowfree
16.2k12 gold badges51 silver badges76 bronze badges
Try:
$str = "I like to eat apple";
end((explode(" ",$str));
kenorb
152k85 gold badges670 silver badges732 bronze badges
answered Jan 9, 2014 at 20:48
1
Try this:
$array = explode(' ',$sentence);
$last = $array[count($array)-1];
Will Vousden
32.2k9 gold badges84 silver badges94 bronze badges
answered Jun 14, 2012 at 8:37
Milan HaladaMilan Halada
1,93318 silver badges28 bronze badges
0
Get last word of string
$string =»I like to eat apple»;
$las_word_start = strrpos($string, ‘ ‘) + 1; // +1 so we don’t include the space in our result
$last_word = substr($string, $last_word_start);
echo $last_word // last word : apple
answered May 31, 2017 at 6:23
Reena MoriReena Mori
6476 silver badges15 bronze badges
1
How about this get last words or simple get last word from string just by passing the amount of words you need get_last_words(1, $str);
public function get_last_words($amount, $string)
{
$amount+=1;
$string_array = explode(' ', $string);
$totalwords= str_word_count($string, 1, 'àáãç3');
if($totalwords > $amount){
$words= implode(' ',array_slice($string_array, count($string_array) - $amount));
}else{
$words= implode(' ',array_slice($string_array, count($string_array) - $totalwords));
}
return $words;
}
$str = 'I like to eat apple';
echo get_last_words(1, $str);
answered Dec 25, 2013 at 12:33
M Khalid JunaidM Khalid Junaid
63.6k10 gold badges90 silver badges117 bronze badges
<?php
// your string
$str = 'I like to eat apple';
// used end in explode, for getting last word
$str_explode=end(explode("|",$str));
echo $str_explode;
?>
Output will be apple
.
answered Mar 2, 2015 at 3:04
In this tutorial, I’ll discuss how you can get the last word from a given string in Python. It’s very easy to get the last word from a given string in Python. To get the last word from a string, we have to convert the string into a list at the first. After converting the string into a list, simply we can use the slicing operator to get the last word of the string and then we can print it. For converting a string into a list we can simply use the split() method.
Syntax:
your_string.split(Separator, Maxsplit)
Separator: This is optional. This is used to specify where we want to split the string. By default, it takes whitespace as a separator.
Maxsplit : This is also optional. This is used to specify how many splits we want to do in the given string. By default, it takes the value as -1, which means all the occurrences or no limit on the number of splits.
Now, let me give an example to understand the concept
#taking input from the user string = input("Enter your string: ") #splitting the string words = string.split() #slicing the list (negative index means index from the end) #-1 means the last element of the list print(words[-1])
Run this code online
Output :
Enter your string: Welcome to Codespeedy Codespeedy
In this above code, I gave the input as ‘Welcome to Codespeedy’ and it gave me output as ‘Codespeedy’ that is the last word of the string.
So I hope now you’re familiar with the concept of how you can get the last word from a string.
Also read:
- Python string rjust() and ljust() methods
1. Overview
In this article, we will learn the various ways to get the last word of a Java String.
2. Use String#substring method to get the last word
The substring() method of the java String
class returns a part of the string. You can use the below overloaded substring
method to get the last word of a Java string.
public String substring(int startIndex)
Now, we know the method to get a part of the string. But how to find the startIndex
of the last word of a string.
You must look for the index of the last space
character in the string and next to it would be your last word. To do this, use the lastIndexOf
method.
pubic int lastIndexOf(int ch)
Let’s take the below code. The index of space
is 26 and last word sentence
starts from 27th index.
public class Main { public static void main(String args[]) { String lastWordStr = "Find the last word in this sentence".trim(); String lastWord = lastWordStr.substring(lastWordStr.lastIndexOf(" ")+1); System.out.println(lastWord); /* prints sentence */ } }
The above code would work correctly even if the string contains only one word. For example, the below lastWordStr
has only a single word sentence
. Still, this substring
expression would return the sentence
correctly.
Here, the lastIndexOf
returns -1 as there is no space
found in the string and next index to -1 is 0. So, the substring
method takes the string from index 0 and returns it.
public static void main(String args[]) { String lastWordStr = "sentence"; String lastWord = lastWordStr.substring(lastWordStr.lastIndexOf(" ")+1); /* lastIndexOf returns -1, so -1+1 = 0 index */ System.out.println(lastWord); /* prints sentence */ }
2.2. Use String#split method to get string last word
You can use split
method of the String
class to split the string using the space
delimiter into array of words.
In the below code, we have split the lastWordStr
by using the space
. So parts
array would have the elements “Last”, “word”, “in”, “a”, “sentence”. Now, we get the last element or word "sentence"
from the array using its index.
public static void main(String args[]) { String lastWordStr = "Last word in a sentence"; String[] parts = lastWordStr.split(" "); String lastWord = parts[parts.length - 1]; System.out.println(lastWord); /* prints sentence */ }
2.3. Use String#replaceAll method to get the last word of a string
You can use replaceAll
method of String to get the last word of the string.
In the below code, replaceAll
regex match the entire string from ^
(start) to $
(end). Then, captures the last sequence of w+
in a capturing group 1 (captures the last word sentence
), and replaces the entire string using $1
(capturing group).
public static void main(String args[]) { String lastWordStr = "Last word in a sentence"; String lastWord = lastWordStr.replaceAll("^.*?(\w+)\W*$", "$1"); System.out.println(lastWord); /* prints sentence */ }
.*
? matches as few characters possible (except for line terminators)- 1st Capturing Group (w+)w matches any word character ([a-zA-Z0-9_])+ as many times possible
- W matches any non-word character ([^a-zA-Z0-9_])* as many times as possible
2.4. Use StringUtils#substringAfterLast apache commons
You can use substringAfterLast
method of StringUtils
class that is available in apache commons library. To use it, you must add the apache commons dependency in your project.
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.11</version> </dependency>
In the below code, we are checking if the string has only a single word or not. If there are more words, then we invoke the substringAfterLast
by passing the space
as an argument to separate the last word.
public static void main(String args[]) { String input = "Last word in a sentence"; getLastWord(input); } public static String getLastWord(String input) { String lastWord; String wordSeparator = " "; boolean singleWordStr = !StringUtils.contains(input, wordSeparator); if (singleWordStr) { lastWord = input; } lastWord = StringUtils.substringAfterLast(input, wordSeparator); System.out.println(lastWord); return lastWord; }
3. Conclusion
To sum up, we have seen the various ways to get the last word of a Java String.
In the previous article, we have discussed Python Program to Subtract two Complex Numbers
Given a string that contains the words the task is to print the last word in the given string in Python.
Examples:
Example1:
Input:
Given string =hello this is BTechgeeks
Output:
The last word in the given string { hello this is BTechgeeks } is: BTechgeeks
Example2:
Input:
Given string =good morning this is btechgeeks
Output:
The last word in the given string { good morning this is btechgeeks } is: btechgeeks
Below are the ways to get the last word from the given string in Python.
- Using split() Method (Static Input)
- Using split() Method (User Input)
Method #1: Using split() Method (Static Input)
Approach:
- Give the string as static input and store it in a variable.
- Split the words of the given string to a list of words using the built-in split() function.
- Get the last word from the above list of words using negative indexing and store it in a variable.
- Print the last word of the given string by printing the above variable.
- The Exit of the Program.
Below is the implementation:
# Give the string as static input and store it in a variable. gvnstrng = 'hello this is BTechgeeks' # Split the words of the given string to a list of words # using the built-in split() function. lsttofwrds = gvnstrng.split() # Get the last word from the above list of words using negative indexing # and store it in a variable. lstwrd = lsttofwrds[-1] # Print the last word of the given string by printing the above variable. print('The last word in the given string {', gvnstrng, '} is:', lstwrd)
Output:
The last word in the given string { hello this is BTechgeeks } is: BTechgeeks
Method #2: Using split() Method (User Input)
Approach:
- Give the string as user input using the input() function and store it in the variable.
- Split the words of the given string to a list of words using the built-in split() function.
- Get the last word from the above list of words using negative indexing and store it in a variable.
- Print the last word of the given string by printing the above variable.
- The Exit of the Program.
Below is the implementation:
# Give the string as user input using the input() function and store it in the variable. gvnstrng = input('Enter some random string = ') # Split the words of the given string to a list of words # using the built-in split() function. lsttofwrds = gvnstrng.split() # Get the last word from the above list of words using negative indexing # and store it in a variable. lstwrd = lsttofwrds[-1] # Print the last word of the given string by printing the above variable. print('The last word in the given string {', gvnstrng, '} is:', lstwrd)
Output:
Enter some random string = good morning this is btechgeeks The last word in the given string { good morning this is btechgeeks } is: btechgeeks
Explore more instances related to python concepts from Python Programming Examples Guide and get promoted from beginner to professional programmer level in Python Programming Language.
- Python Program to Remove the First Occurrence of Character in a String
- Program to Print Even Length Words in a String
- Python Program to Print Nth word in a given String
- Python Program to Remove all Consonants from a String
In the previous article, we have discussed Python Program to Subtract two Complex Numbers
Given a string that contains the words the task is to print the last word in the given string in Python.
Examples:
Example1:
Input:
Given string =hello this is BTechgeeks
Output:
The last word in the given string { hello this is BTechgeeks } is: BTechgeeks
Example2:
Input:
Given string =good morning this is btechgeeks
Output:
The last word in the given string { good morning this is btechgeeks } is: btechgeeks
- Python Program to Remove the last Word from the String/Sentence
- Python Program to Remove a String from a List of Strings
- Python Program to Sort words in Alphabetic Order
Below are the ways to get the last word from the given string in Python.
- Using split() Method (Static Input)
- Using split() Method (User Input)
Method #1: Using split() Method (Static Input)
Approach:
- Give the string as static input and store it in a variable.
- Split the words of the given string to a list of words using the built-in split() function.
- Get the last word from the above list of words using negative indexing and store it in a variable.
- Print the last word of the given string by printing the above variable.
- The Exit of the Program.
Below is the implementation:
# Give the string as static input and store it in a variable. gvnstrng = 'hello this is BTechgeeks' # Split the words of the given string to a list of words # using the built-in split() function. lsttofwrds = gvnstrng.split() # Get the last word from the above list of words using negative indexing # and store it in a variable. lstwrd = lsttofwrds[-1] # Print the last word of the given string by printing the above variable. print('The last word in the given string {', gvnstrng, '} is:', lstwrd)
Output:
The last word in the given string { hello this is BTechgeeks } is: BTechgeeks
Method #2: Using split() Method (User Input)
Approach:
- Give the string as user input using the input() function and store it in the variable.
- Split the words of the given string to a list of words using the built-in split() function.
- Get the last word from the above list of words using negative indexing and store it in a variable.
- Print the last word of the given string by printing the above variable.
- The Exit of the Program.
Below is the implementation:
# Give the string as user input using the input() function and store it in the variable. gvnstrng = input('Enter some random string = ') # Split the words of the given string to a list of words # using the built-in split() function. lsttofwrds = gvnstrng.split() # Get the last word from the above list of words using negative indexing # and store it in a variable. lstwrd = lsttofwrds[-1] # Print the last word of the given string by printing the above variable. print('The last word in the given string {', gvnstrng, '} is:', lstwrd)
Output:
Enter some random string = good morning this is btechgeeks The last word in the given string { good morning this is btechgeeks } is: btechgeeks
Explore more instances related to python concepts from Python Programming Examples Guide and get promoted from beginner to professional programmer level in Python Programming Language.
- Python Program to Remove the First Occurrence of Character in a String
- Program to Print Even Length Words in a String
- Python Program to Print Nth word in a given String
- Python Program to Remove all Consonants from a String
Looking at the code, it seems like you are reinventing the wheel.
See the answer of @Josiah for some alternatives to use the standard library.
Assuming this ain’t possible for some reason, lets say its implemented badly, I would improve some smaller things.
Before giving some improvements, make sure to measure!
Is this code only used once? Does it only take 1% of the time? Is the example code the only use? Than don’t spend time on this!
Add preconditions
Currently your function accepts an empty string.
When this is encountered, you always get an error message.
If you somewhere want to handle this differently, it should be checked twice.
Or in case you know it can’t be empty, it still is checked when not needed.
Instead, you could write:
assert(!str.empty() && "An empty string should not be passed");
If your specific example, you’ll have to write the check in the main function. However, in that case, you could use an alternative way of handling it. For example:
std::string str;
do
{
std::cout << "Enter string :n";
std::getline(std::cin, str);
} while (str.empty());
Memory allocations
std::string
can have short string optimization. Although, for large strings, this might allocate memory. If you append character by character, this might reallocate.
To prevent this reallocation, you can reserve the string:
last_word.reserve(str.size() + 1 /*Null terminator*/);
The code above would be wonderful for a vector, when you have at least 1 element. However, as we have short string optimization, this might allocate, while the result won’t require it.
last_word.reserve(len — j); // To be verified with null terminator.
If really performance critical, you might want to check the implementation of the standard library as they are allowed to reserve more characters than you pass. So, they can add 1 for the null terminator. (libstdc++ and MSVC do so, I read)
Output argument
In order to not recreate a string, you can manipulate the original string.
With the erase
method, you can (in bulk) remove all previous characters at once.
This will work when you don’t need that argument any more, however, this might add unwanted overhead if you do or don’t have a std::string instance.
string_view
std::string_view
was added in a recent c++ version, this will behave as a string, although, doesn’t store the content in it.
Returning a string_view might prevent copying over the characters into the std::string
. Same can be said for the input argument.
Warning: This is error prone in case you work with temporaries.