Multiplicar strings em Java

Rupam Yadav 12 outubro 2023
  1. Multiplicar strings utilizando String().replace() em Java
  2. Multiplicar strings utilizando o Stream API em Java
  3. Multiplicar strings utilizando a Guava em Java
Multiplicar strings em Java

Neste tutorial, aprenderemos como podemos multiplicar uma string usando vários métodos e exemplos.

Multiplicar strings utilizando String().replace() em Java

O primeiro método para multiplicar uma string é utilizar a função replace() da classe String. Este método replace aceita dois argumentos; o primeiro é o alvo, que é a string que queremos substituir, e o segundo é a string de substituição.

String() pega num array de char e depois formata-os numa string. Podemos notar que estamos a substituir \0 por 0. O nosso objectivo é multiplicar \0 10 vezes e juntá-la até ao final de 123. O \0 é chamado um carácter nulo, que encontra o fim da nossa string e o substitui por 0.

Pela simplicidade do exemplo, temos utilizado um laço para ver cada passo, mas podemos fazê-lo sem o laço, e teremos uma única string com todos os 0’s multiplicados.

public class Main {
  public static void main(String[] args) {
    for (int i = 0; i <= 10; i++) {
      String result = new String(new char[i]).replace("\0", "0");
      System.out.println("123" + result);
    }
  }

Resultado:

123
1230
12300
123000
1230000
12300000
123000000
1230000000
12300000000
123000000000
1230000000000

Multiplicar strings utilizando o Stream API em Java

Podemos utilizar o Stream API introduzido em Java 8 para multiplicar uma string e depois juntá-los no fim da string. No exemplo abaixo, Stream.generate() é chamado para criar novos fluxos a partir do fornecedor; no nosso caso, o fornecedor é ourString. O limit() é utilizado com o Stream para limitar o número de valores que deve retornar.

O método reduce() é utilizado para realizar uma operação binária e depois devolver um único valor. Estamos a adicionar os elementos e depois a devolver o valor acrescentado. Podemos notar que após todas as operações, obtemos o result1 de Optional<String>, que é devolvido quando existe a possibilidade de o resultado poder estar vazio.

Finalmente, podemos verificar se o result1 não está vazio, utilizando isPresent() e depois ir buscar a string utilizando o método get().

import java.util.Optional;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    String ourString = "123";

    for (int count = 0; count <= 10; count++) {
      Optional<String> result1 =
          Stream.generate(() -> ourString).limit(count).reduce((a, b) -> a + b);

      String finalResult;
      if (result1.isPresent()) {
        finalResult = result1.get();
        System.out.println(finalResult);
      }
    }
  }
}

Resultado:

123
123123
123123123
123123123123
123123123123123
123123123123123123
123123123123123123123
123123123123123123123123
123123123123123123123123123
123123123123123123123123123123

Multiplicar strings utilizando a Guava em Java

No último método para multiplicar strings em Java, utilizaremos uma biblioteca chamada Guava. Para utilizar esta biblioteca, temos de a importar utilizando a seguinte dependência maven.

 <dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.0-jre</version>
  </dependency>

O método Strings.repeat() da biblioteca da Goiaba pode ser utilizado para repetir o método ourString várias vezes. São necessários dois argumentos, o string que queremos multiplicar e depois a contagem das repetições.

import com.google.common.base.Strings;

public class Main {
  public static void main(String[] args) {
    String ourString = "1234";
    for (int count = 0; count < 5; count++) {
      String finalResult = Strings.repeat(ourString, count);
      System.out.println(finalResult);
    }
  }
}

Resultado:

1234
12341234
123412341234
1234123412341234
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java String