Open In App

JavaScript Program to Print all Substrings of a Given String

Last Updated : 28 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will see how we can print all substrings of a given string in JavaScript language. We have provided an input string, from which we need to print all the possible substrings. Below we have stated the example for a better understanding of the problem statement:

Example:

Input: abc
Output: a
ab
abc
b
bc
c

To print all substrings of a given string in JavaScript, we have three different approaches, which we have stated below:

So, we will see all of the above approaches with its implementation:

Approach 1: Using substring() Method

The substring() method in JavaScript is used to get the substrings from the input string. We have used the 2 nested loops to specify the starting and ending indices of each of the substring and then the substrings are printed using substring() method.

Syntax:

string.substring([start,end])

Example: In this example, we will be printing all substrings of a given string in JavaScript using substring() method.

Javascript




let str = "abcd";
let uniqueSub = new Set();
  
for (let i = 0; i < str.length; i++) {
    for (
        let j = i + 1;
        j <= str.length;
        j++
    ) {
        let substring = str.substring(
            i,
            j
        );
        if (!uniqueSub.has(substring)) {
            console.log(substring);
            uniqueSub.add(substring);
        }
    }
}


Output

a
ab
abc
abcd
b
bc
bcd
c
cd
d

Apporach 2: Using slice() Method

The slice() method in JavaScript is also used to extract the substrings of the input string. Same as Apprach 1, we have used 2 nested loops to specify the starting and ending indices, and then we are printing the substrings using splice() method.

Syntax:

string.slice([start,end])

Example: In this example, we will be printing all substrings of a given string in JavaScript using sllice() method.

Javascript




let str = "abcd";
let uniqueSub = new Set();
  
for (let i = 0; i < str.length; i++) {
    for (
        let j = i + 1;
        j <= str.length;
        j++
    ) {
        let substring = str.slice(i, j);
        if (!uniqueSub.has(substring)) {
            console.log(substring);
            uniqueSub.add(substring);
        }
    }
}


Output

a
ab
abc
abcd
b
bc
bcd
c
cd
d

Approach 3: Using String Concatenation

Syntax:

sub +=str[j];

Example: In this example, we will be printing all substrings of a given string in JavaScript using String Concatenation.

Javascript




let str = "abcd";
let uniqueSub = new Set();
for (let i = 0; i < str.length; i++) {
    let substring = "";
    for (
        let j = i;
        j < str.length;
        j++
    ) {
        substring += str[j];
        uniqueSub.add(substring);
    }
}
uniqueSub.forEach((substring) => {
    console.log(substring);
});


Output

a
ab
abc
abcd
b
bc
bcd
c
cd
d

Approach 4: Using Array or No Builtin Functions

The array is used to store the substrings and also we are checking for the substrings by using loop and conditional statement rather than using any builtin method. This apporach is completely raw appraoach, as no builtin methods are used here.

Syntax:

let array = [];
for(loop_condtion) {
//statements
}
if(condition)
{
//statements
}

Example: In this example, we will be printing all substrings of a given string in JavaScript using Array or without using Builtin functions.

Javascript




function subStrings(str) {
    let substrings = [];
    for (
        let start = 0;
        start < str.length;
        start++
    ) {
        for (
            let end = start + 1;
            end <= str.length;
            end++
        ) {
            let sub = "";
            for (
                let i = start;
                i < end;
                i++
            ) {
                sub += str[i];
            }
            let uniqueSub = true;
            for (
                let j = 0;
                j < substrings.length;
                j++
            ) {
                if (
                    sub ===
                    substrings[j]
                ) {
                    uniqueSub = false;
                    break;
                }
            }
            if (uniqueSub) {
                substrings.push(sub);
                console.log(sub);
            }
        }
    }
}
subStrings("abcd");


Output

a
ab
abc
abcd
b
bc
bcd
c
cd
d


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads