# Java Program to Check if a string can be obtained by rotating another string 2 places

• Last Updated : 06 Jan, 2022

Given two strings, the task is to find if a string can be obtained by rotating another string two places.

Examples:

Input: string1 = “amazon”, string2 = “azonam”
Output: Yes
// rotated anti-clockwise
Input: string1 = “amazon”, string2 = “onamaz”
Output: Yes
// rotated clockwise

```1- There can be only two cases:
a) Clockwise rotated
b) Anti-clockwise rotated

2- If clockwise rotated that means elements
are shifted in right.
So, check if a substring[2.... len-1] of
string2 when concatenated with substring[0,1]
of string2 is equal to string1. Then, return true.

3- Else, check if it is rotated anti-clockwise
that means elements are shifted to left.
So, check if concatenation of substring[len-2, len-1]
with substring[0....len-3] makes it equals to
string1. Then return true.

4- Else, return false.```

Below is the implementation of the above approach.

## Java

 `// Java program to check if a string ``// is two time rotation of another string.`` ` `class` `Test``{``    ``// Method to check if string2 is ``    ``// obtained by string 1``    ``static` `boolean` `isRotated(String str1, ``                             ``String str2)``    ``{``        ``if` `(str1.length() != str2.length())``            ``return` `false``;``        ``if``(str1.length() < ``2``)``        ``{``            ``return` `str1.equals(str2);``        ``}``      ` `        ``String clock_rot = ``""``;``        ``String anticlock_rot = ``""``;``        ``int` `len = str2.length();``      ` `        ``// Initialize string as anti-clockwise ``        ``// rotation``        ``anticlock_rot = anticlock_rot +``                        ``str2.substring(len-``2``, len) +``                        ``str2.substring(``0``, len-``2``) ;``      ` `        ``// Initialize string as clock wise ``        ``// rotation``        ``clock_rot = clock_rot +``                    ``str2.substring(``2``) +``                    ``str2.substring(``0``, ``2``) ;``      ` `        ``// check if any of them is equal to string1``        ``return` `(str1.equals(clock_rot) ||``                ``str1.equals(anticlock_rot));``    ``}``     ` `    ``// Driver method``    ``public` `static` `void` `main(String[] args) ``    ``{``        ``String str1 = ``"geeks"``;``        ``String str2 = ``"eksge"``;``      ` `        ``System.out.println(isRotated(str1, str2) ?  ``                           ``"Yes"` `: ``"No"``);``    ``}``}`

Output:

`Yes`

Please refer complete article on Check if a string can be obtained by rotating another string 2 places for more details!

My Personal Notes arrow_drop_up