HOWTO · Java

Como remover string de string em Java

Este tutorial mostra como remover substrato de qualquer string em Java com múltiplas abordagens como o uso de repalce(), substituirAll(), e StringBuffer().

Nesta página

Neste tutorial, aprenderemos como remover uma substring de qualquer string em Java.

replace() Método para remover uma subestrutura em Java

O primeiro e mais comumente utilizado método para remover/substituir qualquer substrato é o método replace() da classe Java String.

string.replace(char oldChar, char newChar)

O primeiro parâmetro é o substring a ser substituído, e o segundo parâmetro é o novo substring para substituir o primeiro parâmetro.

Códigos de exemplo:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    String originalstring = "This is Simple Testing";
    String replace = originalstring.replace('i', 'a');
    System.out.println("Original String: " + originalstring);
    System.out.println("Modified String with Replacement: " + originalstring.replace('i', 'a'););
  }
}

Resultado:

Original String: This is Simple Testing
Modified String with Replacement: Thas as Sample Testang

StringBuffer.replace() Método para Remover Caracteres de String em Java

Este método poderia remover/substituir qualquer substrato na faixa de índice determinada. Java StringBuffer é semelhante a String, mas é mutável.

A sintaxe do método StringBuffer.replace() é,

StringBuffer replace(int start, int end, String str)

start e end são o índice inicial e final da faixa especificada. start é inclusivo, e end é exclusivo; portanto, a faixa atual é [start, end-1].

str é a string que substitui o conteúdo na faixa acima especificada.

Códigos de exemplo:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    StringBuffer originalString = new StringBuffer("Simple Testing");
    System.out.println("Original String: " + originalString);
    originalString.replace(5, 6, "y");
    System.out.println("Modified String: " + originalString);
  }
}

Resultado:

Original String: Simple Testing
Modified String: Simply Testing

replaceAll() Método para remover substring de String em Java

Outro método similar ao método replace() é utilizar o método replaceAll() da classe Java String.

Sua sintaxe é,

String replaceAll(String regex, String replace)

regex é o padrão da expressão regular.

regex é a string para substituir a existente.

Códigos de exemplo:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    String originalstring = "This is Simple Testing Code";
    System.out.println("Original String: " + originalstring);
    System.out.println("Modified String: " + originalstring.replaceAll("Code", ""));
  }
}

Resultado:

Original String: This is Simple Testing Code
Modified String: This is Simple Testing 

Um ponto mais avançado para utilizar o método replaceAll() é utilizar um padrão da expressão regular para remover substratos que combinam com o padrão de uma só vez.

Códigos de exemplo:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    String originalstring = "This Test is from Simple Testing Code to Test function ";
    System.out.println("Original String: " + originalstring);
    System.out.println("Modified String: " + originalstring.replaceAll("Tes.*?\\b", ""));
  }
}

Resultado:

Original String: This Test is from Simple Testing Code to Test function 
Modified String: This  is from Simple  Code to  function 
Nota
Ambos os métodos replace() e replaceAll() substituem todas as ocorrências. A diferença entre eles é que o método replaceAll() utiliza um padrão de expressão regular.