a manipulação de String é feita mais frequentemente durante a programação. Como remover espaços dentro ou em torno do texto string. Isto também é conhecido como ‘strip’ separando espaços na cadeia. Então, até agora, todos nós estamos cientes das diferentes maneiras de remover espaços de string em java, ou seja, trim, replaceAll. No entanto, java 11 fez algumas novas adições a estes com métodos como, strip, stripLeading , stripTrailing.
na maioria das vezes, apenas usamos o método de corte para remover espaços. Nunca paramos e pensamos que pode haver uma maneira melhor de satisfazer as nossas necessidades? Claro, o Trimm() funciona bem para a maioria dos casos, mas existem muitos métodos diferentes em java. Cada um tem suas próprias vantagens e desvantagens. Como é que decidimos qual o método mais adequado para nós?
Well, in this blog we shall cover the different methods in detail.
- trim (): remover espaços iniciais e finais da cadeia de caracteres
- strip (): Remove espaços no início e no fim do texto. Tira o método é o conjunto de caracteres Unicode ciente
- guarnição vs tira: Diferenças entre a guarnição e a tira do método
- stripLeading(): Remove espaços em branco apenas a partir do início da cadeia de caracteres
- stripTrailing(): Remove espaços em branco apenas a partir do final da cadeia de caracteres
- () substituir: Substitui todas as personagens de alvo com o novo personagem
- replaceAll(): Substitui todas as correspondência de caracteres com o novo personagem. Este método usa a expressão regular como entrada para identificar alvo de subseqüência de caracteres que precisa ser substituído
- replaceAll vs substituir: Diferenças entre o substituir e método replaceAll
- replaceFirst(): Substitui apenas a primeira ocorrência de destino subseqüência de caracteres com nova seqüência de caracteres de substituição
diferentes formas de remover espaços da cadeia de caracteres em java
ponto Mais importante a se notar é que em java um objeto string é imutável. Significa que não podemos modificar uma string, portanto todos os métodos retornam uma nova string com todas as transformações.
trim () method in java
trim() is the most commonly used method by java developers for removing leading and trailing spaces. Para o método de acabamento, o carácter espaço significa qualquer carácter cujo valor ASCII seja inferior ou igual a 32 (“U+0020”).
Exemplo de guarnição método para remover espaços:
public class StringTrimTest { public static void main(String args) { String string = " String with space "; System.out.println("Before trim: \"" + string +"\""); System.out.println("After trim: \"" + string.trim() +"\""); }}
Em CommandLineRunnerImpl
status=em execução
Before trim: " String with space "After trim: "String with space"
tira() método Java 11
Na versão do Java, 11 nova faixa() método foi adicionado para remover espaços à esquerda e direita da String.
este método foi adicionado porque existem vários caracteres espaciais de acordo com os padrões Unicode com valor ASCII superior a 32 (“U+0020”). Ex: 8193 (U+2001).
para identificar estes caracteres espaciais, o novo método isWhitespace(int) foi adicionado a partir do Java 1.5 na classe de caracteres. Este método usa unicode para identificar caracteres espaciais. Você pode ler mais sobre Caracteres de espaço unicode aqui.
o método da tira usa este carácter.método isWhitespace(int) para cobrir uma vasta gama de caracteres de espaço branco e removê-los. Exemplo de tira():
public class StringStripTest { public static void main(String args) { String string = " String with space "; System.out.println("Before strip: \"" + string+"\""); System.out.println("After strip: \"" + string.strip()+"\""); }}
Em CommandLineRunnerImpl
status=em execução
Before strip: " String with space "After strip: "String with space"
Diferença entre a guarnição e a faixa de método em java
trim() | tira() |
---|---|
a Partir do Java 1 | a Partir do Java 11 |
Usa codepoint(ASCII) valor | Usa Unicode valor |
Remove à esquerda e à direita de caracteres(espaço), | Remove à esquerda e à direita de caracteres(espaço) |
Remove os caracteres de ter ASCII valor menor ou igual a ‘U+0020′ ou ’32’ | remove todos os caracteres de espaço de acordo com o unicode |
vejamos o exemplo em que usaremos caracteres de espaço branco superiores a 32 (‘U+0020’) unicode.
public class StringTrimVsStripTest { public static void main(String args) { String string = '\u2001'+"String with space"+ '\u2001'; System.out.println("Before: \"" + string+"\""); System.out.println("After trim: \"" + string.trim()+"\""); System.out.println("After strip: \"" + string.strip()+"\""); }}
produção:
Before: " String with space "After trim: " String with space "After strip: "String with space"
no exemplo acima, podemos ver que o método trim é incapaz de remover o carácter de espaço adicionado pelo carácter unicode ‘\u2001’.
Nota: Se estiver a correr na máquina do windows, poderá não ser capaz de ver a saída semelhante devido a um conjunto unicode limitado. Você pode usar Compiladores online para executar o programa. Alguns links de compilador online são como abaixo,
Java-8: https://www.jdoodle.com/online-java-compiler/
Java-11: https://www.tutorialspoint.com/compile_java_online.php
stripLeading () method Java 11
Added in Java 11, stripLeading() method removes all leading spaces from a String.
Similar ao método de stripLeading também usa caracteres.isWhitespace (int) para identificyng espaços em branco.
public class StringStripLeadingTest { public static void main(String args) { String string = " String with space "; System.out.println("Before: \"" + string+"\""); System.out.println("After : \"" + string.stripLeading()+"\""); }}
produção:
Before: " String with space "After : "String with space "
stripTrailing () method Java 11
Added in Java 11, stripTrailing() method removes all ending spaces from a String.
Similar ao método strip stripTrailing também usa caracteres.isWhitespace (int) para identificar espaços em branco.
public class StringStripTrailingTest { public static void main(String args) { String string = " String with space "; System.out.println("Before: \"" + string+"\""); System.out.println("After : \"" + string.stripTrailing()+"\""); }}
produção:
Before:" String with space "After :" String with space"
replace (CharSequence target, CharSequence replacement):
adicionado a partir de java 1.5, este método é utilizado para substituir cada substring de destino pela cadeia de substituição especificada.
este método substitui todos os elementos-alvo correspondentes.
nota: mais um método de substituição (char oldChar, char newChar) está presente na classe java string. A única diferença é que este método toma caráter único como alvo e substituição. Não podemos usar este método para remover espaço, porque não podemos ter o carácter vazio como substituto.
exemplo para remover todos os espaços do texto
public class StringReplaceTest { public static void main(String args) { String string = " String with space "; System.out.println("Before : \"" + string + "\""); System.out.println("Replace: \"" + string.replace(" ", "") + "\""); }}
resultado:
Before : " String with space "Replace : "Stringwithspace"
replaceAll (String regex, String replacement)
adicionado em java 1.4, este é um dos métodos mais poderosos para manipulação de string. Podemos usar este método para muitos fins.
usando o método replaceAll (), podemos substituir cada sub-texto de expressão regular correspondente pelo texto de substituição indicado. Por exemplo, para remover todos os espaços, remover os espaços iniciais, remover os espaços finais e assim por diante.
nós só precisamos criar uma expressão regular correta com parâmetro de substituição correto. Alguns exemplos de expressões como abaixo:
\s+ | Encontrar todo o espaço |
^\s+ | Encontrar todos os espaços no início da linha |
\s+$ | Encontrar todos os espaços na linha final |
Exemplo para a substituição de espaços na seqüência,
Nota: Em java para adicionar ‘/’ temos de usar o caractere de escape assim, para “\s+” temos que usar “\\s+”
public class StringReplaceAllTest { public static void main(String args) { String string = " String with space "; System.out.println("Before replaceAll : \"" + string+"\""); System.out.println("Replace all space : \"" + string.replaceAll(" ", "") + "\""); System.out.println("Replace all regex : \"" + string.replaceAll("\s+", "") + "\""); System.out.println("Replace Leading : \"" + string.replaceAll("^\s+", "") + "\""); System.out.println("Replace trailing : \"" + string.replaceAll("\s+$", "") + "\""); }}
Saída:
Before replaceAll : " String with space "Replace all space : "Stringwithspace"Replace all regex : "Stringwithspace"Replace Leading : "String with space "Replace trailing : " String with space"
As we can see that replaceAll() is pretty powerful method if we use it with proper regular expression.
Diferença entre o replaceAll e método de substituição
replaceAll() | substituir() |
---|---|
a Partir do Java 1.4 | a Partir do Java 1.5 |
Aceita expressão regular para a identificação do alvo | Aceita a seqüência de caracteres para a identificação do alvo |
Usado para corrigir ou dinâmica de seqüência de caracteres de substituição | Usado para correção de seqüência de caracteres de substituição |
Remove os caracteres de ter ASCII valor menor ou igual a ‘U+0020′ ou ’32’ | Remove todos os caracteres de espaço de acordo com unicode |
replaceFirst(String regex, de Seqüência de caracteres de substituição)
Adicionado em java 1.4, o método replaceFirst substitui apenas a primeira correspondência de uma expressão regular indicada por uma cadeia de caracteres de substituição.
este método pode ser muito útil se apenas precisar de substituir apenas uma primeira ocorrência. Por exemplo, se apenas precisarmos remover espaços iniciais, podemos usar “\\S+” ou “^\\s+”.
também podemos usar este método para remover espaços finais usando a expressão regular “\\s+$”. Como esta expressão só irá corresponder aos últimos espaços na linha. Assim, os últimos espaços são considerados como a primeira correspondência para este método.
tomemos um exemplo para remover espaços iniciais e finais da cadeia de caracteres
public class StringReplaceFistTest { public static void main(String args) { String string = " String with space "; System.out.println("Before : \"" + string+"\""); System.out.println("Replace : \"" + string.replaceFirst("space", "update") + "\""); System.out.println("Leading : \"" + string.replaceFirst("\s+", "") + "\""); System.out.println("Trailing : \"" + string.replaceFirst("\s+$", "") + "\""); }}
saída
Before : " String with space "Replace : " String with update "Leading : "String with space "Trailing : " String with space"
leitura rápida :
- Existem diferentes maneiras para remover espaços de seqüência de caracteres em java
- trim() é o método mais comum usado para a remoção de espaços na string
- guarnição método não está ciente de unicode e usa o valor de ascii para identificar caracteres de espaço
- a Partir do java 11 novo método de tiras()’é adicionado para remover espaços
- Método de que a tira está ciente de unicode e deve ser usado para a remoção de espaços especialmente na guia multilíngüe de caso
- Java De 11 de métodos como stripLeading() e stripTrailing() são adicionados para remover espaços à esquerda e direita.
- Para mais controlada remoção de espaços podemos usar replaceAll(), replace(), replaceFirst()