Multiplicar strings em Java
-
Multiplicar strings utilizando
String().replace()em Java -
Multiplicar strings utilizando o
StreamAPI em Java - Multiplicar strings utilizando a Guava 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn