Java Program to Delete a Word from a String

This article is created to cover a program in Java that removes particular word from a given string, entered by user at run-time of the program. The program is created, with and without using library function.

Remove Word from String in Java - Character by Character

The question is, write a Java program to remove specified word from a given string. Both, string and word must be received by user at run-time. The program given below is its answer. This program uses character by character way to remove a given word from a given string:

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      String str, word;
      int strLen, wordLen, i, temp, j, k=0;
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter the String: ");
      str = scan.nextLine();
      System.out.print("Enter the Word to Remove: ");
      word = scan.nextLine();
      
      strLen = str.length();
      wordLen = word.length();
      
      char[] strChars = new char[strLen];
      char[] wordChars = new char[wordLen];
      
      strChars = str.toCharArray();
      wordChars = word.toCharArray();
      for(i=0; i<strLen; i++)
      {
         temp = i;
         for(j=0; j<wordLen; j++)
         {
            if(strChars[i]==wordChars[j])
               i++;
         }
         k = i-temp;
         if(k==wordLen)
         {
            for(j=temp; j<(strLen-wordLen); j++)
               strChars[j] = strChars[j+wordLen];
            strLen = strLen-wordLen;
         }
      }
      
      System.out.print("\nThe new string is: ");
      for(i=0; i<strLen; i++)
         System.out.print(strChars[i]);
   }
}

The sample run of above program with user input Java is Fun as string and Fun as word to delete, is shown in the snapshot given below:

remove given word from string java

Note - The toCharArray() method, converts string to character array.

Note - The length() method returns the length of string.

Remove Word from String in Java using Library Function

Using library function, the program becomes too short. Here is the program, that also removes a given word from a given string, using a library function named replaceAll()

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      String str, word;
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter the String: ");
      str = scan.nextLine();
      System.out.print("Enter the Word to Remove: ");
      word = scan.nextLine();
      
      str = str.replaceAll(word, "");
      
      System.out.println("\nThe new string is: " +str);
   }
}

The snapshot given below shows the sample run of above program, with user input codescracker dot com as string and dot as word to delete:

java program remove word from string

Still the output looks weird, as after removing the word, the new string contains double white spaces in between the two word, from where the word (dot) was deleted. It is because, the statement:

str = str.replaceAll(word, "");

only removes the word, but not removes the white space after or before the word. Therefore, the program needs to be modified, in way to produce the string without extra white spaces. To do this, add another statement, after the statement that removes given word from the string. Here is the statement, you need add:

str = str.replaceAll("\\s+", " ");

In the above statement, the code \\s+ refers to all white spaces, whereas \\s refers to single white space. But I've used \\s+, because, sometime the word to be delete, can be found two times, adjacently. And at that case, we need to use this code. The above statement, must be used, before printing the final string after removing given word.

Here is the sample run with same user input as of previous one, after modifying the program, in same way as told here:

java remove word from string example

Same Program in Other Languages

Java Online Test


« Previous Program Next Program »


Liked this post? Share it!