A Classe String Parte 5

Tempo de leitura: 17 min

Escrito por Michel Adriano Medeiros
em 22/03/2020

formatted​(Object… args)

formatted​(Object… args) – Associado aos blocos de texto, um recurso de visualização da linguagem Java. Formatos usando essa sequência como a sequência de formatação e os argumentos fornecidos.

public String formatted​(Object… args) – Este método está associado a blocos de texto, um recurso de visualização da linguagem Java. Os programas podem usar esse método apenas quando os recursos de visualização estão ativados. Os recursos de visualização podem ser removidos em uma versão futura ou atualizados para recursos permanentes da linguagem Java.

Formatos usando essa sequência como a sequência de formatação e os argumentos fornecidos.

Requisitos de implementação:

Este método é equivalente a String.format (this, args).

Parâmetros:

args – Argumentos referenciados pelos especificadores de formato nesta string.

Retornos:

Uma sequência formatada

Esse método existe desde a versão 13 do Java.

Veja também:

format(String,Object...)Formatter

Fonte do código: https://www.tutorialspoint.com/java/util/formatter_format.htm

package com.tutorialspoint;

import java.util.Formatter;
import java.util.Locale;

public class FormatterDemo {
   public static void main(String[] args) {

      // create a new formatter
      StringBuffer buffer = new StringBuffer();
      Formatter formatter = new Formatter(buffer, Locale.US);

      // format a new string
      String name = "World";
      formatter.format("Hello %s !", name);

      // print the formatted string with default locale
      System.out.println("" + formatter + " " + formatter.locale());
   }
}

getBytes()

getBytes() – Codifica essa String em uma sequência de bytes usando o conjunto de caracteres padrão da plataforma, armazenando o resultado em uma nova matriz de bytes.

public byte[] getBytes() – Codifica essa String em uma sequência de bytes usando o conjunto de caracteres padrão da plataforma, armazenando o resultado em uma nova matriz de bytes.

O comportamento desse método quando essa cadeia não pode ser codificada no conjunto de caracteres padrão não é especificado. A classe CharsetEncoder deve ser usada quando for necessário mais controle sobre o processo de codificação.

Retornos:

A matriz de bytes resultante

Esse método existe desde a versão 1.1

Fonte do código: https://beginnersbook.com/2013/12/java-string-getbytes-method-example/

import java.io.*;
public class GetBytesExample{
   public static void main(String args[]){
       String str = new String("Hello");
       byte[] array1 = str.getBytes();
       System.out.print("Default Charset encoding:");
       for(byte b: array1){
           System.out.print(b);
       }
       System.out.print("\nUTF-16 Charset encoding:");
       try{
             byte [] array2 = str.getBytes("UTF-16");
             for(byte b1: array2){
                System.out.print(b1);
             }
             byte [] array3 = str.getBytes("UTF-16BE");
             System.out.print("\nUTF-16BE Charset encoding:");
             for(byte b2: array3){
                System.out.print(b2);
             }
        }catch(UnsupportedEncodingException ex){
             System.out.println("Unsupported character set"+ex);
        }
   }	
}

getBytes​(int srcBegin, int srcEnd, byte[] dst, int dstBegin)

getBytes​(int srcBegin, int srcEnd, byte[] dst, int dstBegin) – Descontinuada. Este método não converte caracteres corretamente em bytes.

@Deprecated(since=”1.1″) public void getBytes​(int srcBegin, int srcEnd, byte[] dst, int dstBegin) – Descontinuada. Este método não converte caracteres corretamente em bytes. No JDK 1.1, a maneira preferida de fazer isso é através do método getBytes (), que usa o conjunto de caracteres padrão da plataforma.

Copia caracteres dessa sequência na matriz de bytes de destino. Cada byte recebe os 8 bits de ordem inferior do caractere correspondente. Os oito bits de ordem superior de cada caractere não são copiados e não participam da transferência de forma alguma.

O primeiro caractere a ser copiado está no índice srcBegin; o último caractere a ser copiado está no índice srcEnd-1. O número total de caracteres a serem copiados é srcEnd-srcBegin. Os caracteres, convertidos em bytes, são copiados para a sub-matriz dst, iniciando no índice dstBegin e terminando no índice:

dstBegin + (srcEnd-srcBegin) – 1

Parâmetros:

srcBegin – Índice do primeiro caractere na sequência a ser copiada
srcEnd – Índice após o último caractere na sequência a ser copiada
dst – A matriz de destino
dstBegin – O deslocamento inicial na matriz de destino

Lança:

IndexOutOfBoundsException – se qualquer um dos seguintes for verdadeiro:
srcBegin é negativo
srcBegin é maior que srcEnd
srcEnd é maior que o comprimento dessa String
dstBegin é negativo
dstBegin + (srcEnd-srcBegin) é maior que dst.length

Fonte de código: http://www.java2s.com/Tutorials/Java/java.lang/String/Java_String_getBytes_int_srcBegin_int_srcEnd_byte_dst_int_dstBegin_.htm

public class Main {

  public static void main(String[] args) {
  
    String str = "java2s.com";
    System.out.println(str);
    
    char[] chararr = new char[30];
   
    str.getChars(2, 6, chararr, 0);

    System.out.print("Value of character array : ");
    System.out.println(chararr);
  }
}

getBytes​(String charsetName)

getBytes​(String charsetName) – Codifica essa String em uma sequência de bytes usando o charset nomeado, armazenando o resultado em uma nova matriz de bytes.

public byte[] getBytes​(String charsetName) throws UnsupportedEncodingException – Codifica essa String em uma sequência de bytes usando o charset nomeado, armazenando o resultado em uma nova matriz de bytes.

O comportamento desse método quando essa cadeia não pode ser codificada no conjunto de caracteres especificado não é especificado. A classe CharsetEncoder deve ser usada quando for necessário mais controle sobre o processo de codificação.

Parâmetros:

charsetName – O nome de um charset suportado

Retornos:

A matriz de bytes resultante

Lança:

UnsupportedEncodingException – se o conjunto de caracteres nomeado não for suportado

Esse método existe desde a versão 1.1

Fonte do código: https://www.tutorialspoint.com/java/java_string_getbytes_charsetname.htm

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str1 = new String("Welcome to Tutorialspoint.com");
      try {
         String Str2 = new String(Str1.getBytes( "UTF-8" ));
         System.out.println("Returned Value " + Str2 );
         Str2 = new String (Str1.getBytes( "ISO-8859-1" ));
         System.out.println("Returned Value " + Str2 );
      } catch ( UnsupportedEncodingException e) {
         System.out.println("Unsupported character set");
      }
   }
}

getBytes​(Charset charset)

getBytes​(Charset charset) – Codifica essa String em uma sequência de bytes usando o conjunto de caracteres fornecido, armazenando o resultado em uma nova matriz de bytes.

public byte[] getBytes​(Charset charset) – Codifica essa String em uma sequência de bytes usando o conjunto de caracteres fornecido, armazenando o resultado em uma nova matriz de bytes.

Esse método sempre substitui as seqüências de entrada malformada e caracteres incorrigíveis pela matriz de bytes de substituição padrão do conjunto de caracteres. A classe CharsetEncoder deve ser usada quando for necessário mais controle sobre o processo de codificação.

Parâmetros:

charset – O Charset a ser usado para codificar a String

Retornos:

A matriz de bytes resultante

Esse método existe desde a versão 1.6

Fonte do código: https://www.baeldung.com/string/get-bytes

@Test
public void whenGetBytes_thenCorrect() throws UnsupportedEncodingException {
    byte[] byteArray1 = "abcd".getBytes();
    byte[] byteArray2 = "efgh".getBytes(StandardCharsets.US_ASCII);
    byte[] byteArray3 = "ijkl".getBytes("UTF-8");
    byte[] expected1 = new byte[] { 97, 98, 99, 100 };
    byte[] expected2 = new byte[] { 101, 102, 103, 104 };
    byte[] expected3 = new byte[] { 105, 106, 107, 108 };
     
    assertArrayEquals(expected1, byteArray1);
    assertArrayEquals(expected2, byteArray2);
    assertArrayEquals(expected3, byteArray3);
}

getChars​(int srcBegin, int srcEnd, char[] dst, int dstBegin)

getChars​(int srcBegin, int srcEnd, char[] dst, int dstBegin) – Copia caracteres dessa sequência na matriz de caracteres de destino.

public void getChars​(int srcBegin, int srcEnd, char[] dst, int dstBegin) – Copia caracteres dessa sequência na matriz de caracteres de destino.

O primeiro caractere a ser copiado está no índice srcBegin; o último caractere a ser copiado está no índice srcEnd-1 (portanto, o número total de caracteres a serem copiados é srcEnd-srcBegin). Os caracteres são copiados para a sub-matriz dst, iniciando no índice dstBegin e terminando no índice:

dstBegin + (srcEnd-srcBegin) – 1

Parâmetros:

srcBegin – índice do primeiro caractere na sequência a ser copiada.
srcEnd – indexa após o último caractere na sequência a ser copiada.
dst – a matriz de destino.
dstBegin – o deslocamento inicial na matriz de destino.

Lança:

IndexOutOfBoundsException – se qualquer um dos seguintes for verdadeiro:
srcBegin é negativo.
srcBegin é maior que srcEnd
srcEnd é maior que o comprimento dessa string
dstBegin é negativo
dstBegin + (srcEnd-srcBegin) é maior que dst.length

Código fonte: https://www.tutorialspoint.com/java/lang/string_getchars.htm

package com.tutorialspoint;

import java.lang.*;

public class StringDemo {

   public static void main(String[] args) {

      String str = "Website:www.tutorialspoint.com";
      System.out.println(str);
   
      // character array
      char[] chararr = new char[30];
   
      /* copies characters from starting and ending index into the destination 
         character array */
      str.getChars(12, 26, chararr, 0);

      // print the character array
      System.out.print("Value of character array : ");
      System.out.println(chararr);
   }
}

hashCode()

hashCode() – Retorna um código de hash para essa sequência.

public int hashCode() – Retorna um código de hash para essa sequência. O código hash para um objeto String é calculado como

s[0]*31^(n-1) + s[1]*31^(n-2) + … + s[n-1]

usando int aritmética, onde s [i] é o i-ésimo caractere da sequência, n é o comprimento da sequência e ^ indica exponenciação. (O valor do hash da cadeia vazia é zero.)

Substituições:

hashCode na classe Object

Retornos:

um valor de código de hash para este objeto.

Veja também:

Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)

Código fonte: https://www.journaldev.com/21095/java-equals-hashcode

package com.journaldev.java;

import java.util.HashMap;
import java.util.Map;

public class HashingTest {

	public static void main(String[] args) {
		Map<DataKey, Integer> hm = getAllData();

		DataKey dk = new DataKey();
		dk.setId(1);
		dk.setName("Pankaj");
		System.out.println(dk.hashCode());

		Integer value = hm.get(dk);

		System.out.println(value);

	}

	private static Map<DataKey, Integer> getAllData() {
		Map<DataKey, Integer> hm = new HashMap<>();

		DataKey dk = new DataKey();
		dk.setId(1);
		dk.setName("Pankaj");
		System.out.println(dk.hashCode());

		hm.put(dk, 10);

		return hm;
	}

}

indent​(int n)

indent​(int n) – Ajusta o recuo de cada linha dessa sequência com base no valor de n e normaliza os caracteres de finalização da linha.

public String indent​(int n) – Ajusta o recuo de cada linha dessa sequência com base no valor de n e normaliza os caracteres de finalização da linha.

Essa sequência é conceitualmente separada em linhas usando linhas (). Cada linha é então ajustada como descrito abaixo e, em seguida, é sufixada com um avanço de linha “\ n” (U + 000A). As linhas resultantes são concatenadas e retornadas.

Se n> 0, n espaços (U + 0020) são inseridos no início de cada linha.

Se n <0, até n caracteres em branco são removidos do início de cada linha. Se uma determinada linha não contiver espaço em branco suficiente, todos os caracteres de espaço em branco à esquerda serão removidos. Cada caractere de espaço em branco é tratado como um único caractere. Em particular, o caractere de tabulação “\ t” (U + 0009) é considerado um caractere único; não é expandido.

Se n == 0, a linha permanece inalterada. No entanto, os terminadores de linha ainda são normalizados.

Parâmetros:

n – número de caracteres em branco dos espaços em branco a serem adicionados ou removidos

Retornos:

string com recuo ajustado e finais de linha normalizados

Esse método existe desde a versão 12.

Veja também:

lines()isBlank()Character.isWhitespace(int)

Código do fonte: https://howtodoinjava.com/java12/string-left-indent-lines/

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.stream.Stream;
 
public class Main 
{
    public static void main(String[] args) 
    {
        try
        {
            Path file = Files.createTempFile("testOne", ".txt");
 
            //Write strings to file indented to 8 leading spaces
            Files.writeString(file, "ABC".indent(8), StandardOpenOption.APPEND);
            Files.writeString(file, "123".indent(8), StandardOpenOption.APPEND);
            Files.writeString(file, "XYZ".indent(8), StandardOpenOption.APPEND);    
 
            //Verify the content
            Stream<String> lines = Files.lines(file);
 
            lines.forEach(System.out::println);
        } 
        catch (IOException e) 
        {
            e.printStackTrace();
        }
    }
}

indexOf​(int ch)

indexOf​(int ch) – Retorna o índice dentro dessa cadeia de caracteres da primeira ocorrência do caractere especificado.

public int indexOf​(int ch) – Retorna o índice dentro dessa cadeia de caracteres da primeira ocorrência do caractere especificado. Se um caractere com o valor ch ocorrer na sequência de caracteres representada por esse objeto String, o índice (em unidades de código Unicode) da primeira ocorrência desse tipo será retornado. Para valores de ch no intervalo de 0 a 0xFFFF (inclusive), esse é o menor valor k, de modo que:

this.charAt(k) == ch

é verdade. Para outros valores de ch, é o menor valor k, de modo que:

this.codePointAt(k) == ch

é verdade. Nos dois casos, se esse caractere não ocorrer nessa sequência, -1 será retornado.

Parâmetros:

ch – um caractere (ponto de código Unicode).

Retornos:

o índice da primeira ocorrência do caractere na sequência de caracteres representada por este objeto, ou -1 se o caractere não ocorrer.

Fonte do código: https://beginnersbook.com/2013/12/java-string-indexof-method-example/

public class IndexOfExample{
   public static void main(String args[]) {
       String str1 = new String("This is a BeginnersBook tutorial");
       String str2 = new String("Beginners");
       String str3 = new String("Book");
       String str4 = new String("Books");
       System.out.println("Index of B in str1: "+str1.indexOf('B'));
       System.out.println("Index of B in str1 after 15th char:"+str1.indexOf('B', 15));
       System.out.println("Index of B in str1 after 30th char:"+str1.indexOf('B', 30));
       System.out.println("Index of string str2 in str1:"+str1.indexOf(str2));
       System.out.println("Index of str2 after 15th char"+str1.indexOf(str2, 15));
       System.out.println("Index of string str3:"+str1.indexOf(str3));
       System.out.println("Index of string str4"+str1.indexOf(str4));
       System.out.println("Index of hardcoded string:"+str1.indexOf("is"));
       System.out.println("Index of hardcoded string after 4th char:"+str1.indexOf("is", 4));
   }
}

indexOf​(int ch, int fromIndex)

indexOf​(int ch, int fromIndex) – Retorna o índice dentro dessa cadeia de caracteres da primeira ocorrência do caractere especificado, iniciando a pesquisa no índice especificado.

public int indexOf​(int ch, int fromIndex) – Retorna o índice dentro dessa cadeia de caracteres da primeira ocorrência do caractere especificado, iniciando a pesquisa no índice especificado.

Se um caractere com o valor ch ocorrer na sequência de caracteres representada por esse objeto String em um índice não menor que fromIndex, o índice da primeira ocorrência desse tipo será retornado. Para valores de ch no intervalo de 0 a 0xFFFF (inclusive), esse é o menor valor k, de modo que:

(this.charAt(k) == ch) && (k >= fromIndex)

é verdade. Para outros valores de ch, é o menor valor k, de modo que:

(this.codePointAt(k) == ch) && (k >= fromIndex)

é verdade. Em qualquer um dos casos, se esse caractere não ocorrer nessa cadeia na posição ou depois do índice, -1 será retornado.

Não há restrição no valor de fromIndex. Se for negativo, tem o mesmo efeito como se fosse zero: toda essa cadeia pode ser pesquisada. Se for maior que o comprimento dessa sequência, terá o mesmo efeito que se fosse igual ao comprimento dessa sequência: -1 será retornado.

Todos os índices são especificados em valores de caracteres (unidades de código Unicode).

Parâmetros:

ch – um caractere (ponto de código Unicode).
fromIndex – o índice para iniciar a pesquisa.

Retornos:

o índice da primeira ocorrência do caractere na sequência de caracteres representada por este objeto que é maior ou igual a fromIndex, ou -1 se o caractere não ocorrer.

Código fonte: https://www.tutorialspoint.com/java/java_string_indexof_fromindex.htm

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to Tutorialspoint.com");
      System.out.print("Found Index :" );
      System.out.println(Str.indexOf( 'o', 5 ));
   }
}

indexOf​(String str)

indexOf​(String str) – Retorna o índice dentro dessa cadeia de caracteres da primeira ocorrência da substring especificada.

public int indexOf​(String str) – Retorna o índice dentro dessa cadeia de caracteres da primeira ocorrência da substring especificada.
O índice retornado é o menor valor k para o qual:

this.startsWith(str, k)

Se não existir esse valor de k, -1 será retornado.

Parâmetros:

str – a substring a ser pesquisada.

Retornos:

o índice da primeira ocorrência da substring especificada ou -1 se não houver essa ocorrência.

Código fonte: https://www.tutorialspoint.com/java/java_string_indexof_str.htm

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to Tutorialspoint.com");
      String SubStr1 = new String("Tutorials");
      System.out.println("Found Index :" + Str.indexOf( SubStr1 ));
   }
}

indexOf​(String str, int fromIndex)

indexOf​(String str, int fromIndex) – Retorna o índice nessa cadeia de caracteres da primeira ocorrência da substring especificada, iniciando no índice especificado.

public int indexOf​(String str, int fromIndex) – Retorna o índice nessa cadeia de caracteres da primeira ocorrência da substring especificada, iniciando no índice especificado.

O índice retornado é o menor valor k para o qual:

     k >= Math.min(fromIndex, this.length()) &&
                   this.startsWith(str, k)

Se não existir esse valor de k, -1 será retornado.

Parâmetros:

str – a substring a ser pesquisada.
fromIndex – o índice a partir do qual iniciar a pesquisa.

Retornos:

o índice da primeira ocorrência da substring especificada, iniciando no índice especificado, ou -1 se não houver essa ocorrência

Código fonte: https://www.tutorialspoint.com/java/java_string_indexof_strfromindex.htm

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to Tutorialspoint.com");
      String SubStr1 = new String("Tutorials" );
      System.out.print("Found Index :" );
      System.out.println( Str.indexOf( SubStr1, 15 ));
   }
}

Fonte: https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/lang/String.html

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário


*


*


Seja o primeiro a comentar!

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro