Open In App

Count of words ending at the given suffix in Java

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string str consisting of a sentence, the task is to find the count of words in the given sentence that end with the given suffix suff.

Examples:  

Input: str = “GeeksForGeeks is a computer science portal for geeks”, suff = “ks” 
Output:
“GeeksForGeeks” and “geeks” are the only words ending with “ks”.

Input: str = “This is a sample string”, suff = “is” 
Output:

Approach:  

  • Extract all the words from the given sentence using the split() method.
  • Now for every word check whether the current words ends with the given suffix using endsWith() method.

Below is the implementation of the above approach:  

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
template <size_t N>
void splitString(string (&arr)[N], string str)
{
    int n = 0;
    istringstream iss(str);
     
    for(auto it = istream_iterator<string>(iss);
             it != istream_iterator<string>() && n < N;
           ++it, ++n)
        arr[n] = *it;
}
 
inline bool ends_with(std::string const& value,
                      std::string const& ending)
{
    if (ending.size() > value.size())
        return false;
         
    return std::equal(ending.rbegin(),
                      ending.rend(),
                      value.rbegin());
}
 
// Function to return the count of words
// in the given sentence that
// end with the given suffix
int endingWith(string str, string suff)
{
     
    // To store the count
    int cnt = 0;
    const int size = 50;
    string words[size];
     
    // Extract words from the sentence
    splitString(words, str);
     
    // For every word
    for(int i = 0; i < size; i++)
    {
         
        // If it ends with the given suffix
        if (ends_with(words[i], suff))
            cnt++;
    }
    return cnt;
}
 
// Driver code
int main()
{
    string str = "GeeksForGeeks is a computer "
                 "science portal for geeks";
    string suff = "ks";
 
    cout << endingWith(str, suff);
}
 
// This code is contributed by pratham76


Java




// Java implementation of the approach
class GFG {
 
    // Function to return the count of words
    // in the given sentence that
    // end with the given suffix
    static int endingWith(String str, String suff)
    {
 
        // To store the count
        int cnt = 0;
 
        // Extract words from the sentence
        String words[] = str.split(" ");
 
        // For every word
        for (int i = 0; i < words.length; i++) {
 
            // If it ends with the given suffix
            if (words[i].endsWith(suff))
                cnt++;
        }
 
        return cnt;
    }
 
    // Driver code
    public static void main(String args[])
    {
        String str = "GeeksForGeeks is a computer"
                     + " science portal for geeks";
        String suff = "ks";
 
        System.out.print(endingWith(str, suff));
    }
}


Python3




# Function declared to
# return the count of words
# in the given sentence that
# end with the given suffix
def endingWith( str , suff ):
     
    # Variable to store count
    c = 0
     
    # split function used to extract words
    # from sentence in form of list
    wrd = str.split(" ")
     
    # using for loop with 'in' to extract
    # elements of list
    for l in wrd:
        if l.endswith(suff):
            c += 1
             
    # returning the count
    return c
 
# Driver Code   
str = "GeeksForGeeks is a computer science portal for geeks"
suff = "ks"
 
# printing the final cde
print(endingWith(str, suff ))
 
# This code is contributed by Animesh_Gupta


C#




// C# implementation of the approach
using System;
class GFG{
  
  // Function to return the count of words
  // in the given sentence that
  // end with the given suffix
  static int endingWith(string str, string suff)
  {
 
    // To store the count
    int cnt = 0;
 
    string []sep = {" "};
 
    // Extract words from the sentence
    string []words = str.Split(sep,
                         StringSplitOptions.RemoveEmptyEntries);
 
    // For every word
    for (int i = 0; i < words.Length; i++)
    {
 
      // If it ends with the given suffix
      if (words[i].EndsWith(suff))
        cnt++;
    }
    return cnt;
  }
 
  // Driver code
  public static void Main(string []args)
  {
    string str = "GeeksForGeeks is a computer" +
                   " science portal for geeks";
    string suff = "ks";
 
    Console.Write(endingWith(str, suff));
  }
}
 
// This code is contributed by rutvik


Javascript




// Javascript ptogram for the above approach
 
// Function declared to
// return the count of words
// in the given sentence that
// end with the given suffix
function endingWith(str, suff) {
  // Variable to store count
  let c = 0;
 
  // split function used to extract words
  // from sentence in form of list
  let wrd = str.split(" ");
 
  // using for loop with 'in' to extract
  // elements of list
  for (let i = 0; i < wrd.length; i++) {
    if (wrd[i].endsWith(suff)) {
      c += 1;
    }
  }
 
  // returning the count
  return c;
}
 
// Driver Code
let str = "GeeksForGeeks is a computer science portal for geeks";
let suff = "ks";
 
// printing the final code
console.log(endingWith(str, suff));
 
 
// This code is contributed by codebraxnzt


Output: 

2

 



Last Updated : 02 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads