## Why is this an issue?

Duplicated string literals make the process of refactoring complex and error-prone, as any change would need to be propagated on all occurrences.

### Exceptions

To prevent generating some false-positives, literals having less than 5 characters are excluded.

## How to fix it

Use constants to replace the duplicated string literals. Constants can be referenced from many places, but only need to be updated in a single place.

### Code examples

#### Noncompliant code example

With the default threshold of 3:

    public void run() {
      prepare("action1");                              // Noncompliant - "action1" is duplicated 3 times
      execute("action1");
      release("action1");
    }

    @SuppressWarning("all")                            // Compliant - annotations are excluded
    private void method1() { /* ... */ }
    @SuppressWarning("all")
    private void method2() { /* ... */ }

    public String printInQuotes(String a, String b) {
      return "'" + a + "'" + b + "'";               // Compliant - literal "'" has less than 5 characters and is excluded
    }

#### Compliant solution

    private static final String ACTION_1 = "action1";  // Compliant

    public void run() {
      prepare(ACTION_1);                               // Compliant
      execute(ACTION_1);
      release(ACTION_1);
    }