JavaRush /Blogue Java /Random-PT /Classe de string em Java

Classe de string em Java

Publicado no grupo Random-PT
A classe String em Java foi projetada para funcionar com strings em Java. Todos os literais de string definidos em um programa Java (por exemplo, "abc") são instâncias da classe String. Vejamos suas principais características:
  1. A classe implementa as interfaces Serializablee CharSequence. Por estar incluso no pacote java.lang, não precisa ser importado.
  2. A classe String em Java é uma classe final e não pode ter filhos.
  3. A classe String é uma classe imutável, o que significa que seus objetos não podem ser alterados após serem criados. Quaisquer operações em um objeto String que resultem em um objeto da classe String resultarão na criação de um novo objeto.
  4. Devido à sua imutabilidade, os objetos da classe String são thread-safe e podem ser usados ​​em um ambiente multithread.
  5. Cada objeto em Java pode ser convertido em uma string por meio de um método toStringque todas as classes Java herdam da classe Object.
Classe de string em Java - 1

Trabalhando com String Java

Esta é uma das classes mais comumente usadas em Java. Possui métodos para analisar determinados caracteres de uma string, comparar e pesquisar strings, extrair substrings, criar uma cópia de uma string com todos os caracteres convertidos para minúsculas e maiúsculas, entre outros. Uma lista de todos os métodos da classe String pode ser encontrada na documentação oficial . Java também implementa um mecanismo simples de concatenação (conectando strings), convertendo primitivas em string e vice-versa. Vejamos alguns exemplos de trabalho com a classe String em Java.

Criando Strings

A maneira mais fácil de criar uma instância da classe String é atribuir a ela o valor de uma string literal:
String s = "I love movies";
No entanto, a classe String possui muitos construtores que permitem:
  • crie um objeto contendo uma string vazia
  • crie uma cópia de uma variável de string
  • crie uma string baseada em uma matriz de caracteres
  • crie uma string baseada em uma matriz de bytes (levando em consideração as codificações)
  • etc.

Adição de string

Adicionar duas strings em Java é bastante simples usando o método +. Java permite adicionar variáveis ​​e literais de string entre si:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
Ao adicionar objetos da classe String com objetos de outras classes, reduzimos estes últimos à forma de string. A conversão de objetos de outras classes em uma representação de string é realizada por meio de uma chamada de método implícita toStringno objeto. Vamos demonstrar isso com o seguinte exemplo:
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("Max");
        String out = "java object: " + max;
        System.out.println(out);
        // Output: Java object: Person named Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

Comparação de strings

Para comparar strings, você pode usar o método equals():
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
Quando o caso não é importante para nós ao comparar strings, precisamos usar o método equalsIgnoreCase():
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

Convertendo um objeto/primitivo em uma string

Para converter uma instância de qualquer classe Java ou qualquer tipo de dados primitivo em uma representação de string, você pode usar o método String.valueOf():
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Output:
        1
        12.0
        123.4
        123456
        true
        Person named Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

Convertendo uma string em um número

Muitas vezes você precisa converter uma string em um número. As classes wrapper de tipo primitivo possuem métodos que atendem exatamente a esse propósito. Todos esses métodos começam com a palavra analisar. Considere a tradução de uma string em números inteiros ( Integer) e fracionários ( Double) abaixo:
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

Convertendo uma coleção de strings em uma representação de string

Se você precisar converter todos os elementos de alguma coleção de strings em uma representação de string por meio de um delimitador arbitrário, poderá usar os seguintes métodos da classe Java String:
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
Onde delimiterestá o separador de elementos e elementsé uma instância de array/coleção de strings. Vejamos um exemplo onde convertemos uma lista de strings em uma string, separando cada uma com ponto e vírgula:
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Output:
    Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
     */
}

Dividindo uma string em um array de strings

Esta operação é realizada pelo método split(String regex) O separador é uma expressão regular de string regex. No exemplo abaixo, realizaremos a operação inversa à que realizamos no exemplo anterior:
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Output:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodriguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

Determinando a posição de um elemento em uma string

Na linguagem Java, String fornece um conjunto de métodos para determinar a posição de um caractere/substring em uma string:
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
Onde:
  1. ch— o símbolo que você está procurando ( char)
  2. str- seqüência de pesquisa
  3. fromIndex— a posição a partir da qual procurar o elemento
  4. métodos indexOf- retorna a posição do primeiro elemento encontrado
  5. métodos lastIndexOf- retorna a posição do último elemento encontrado
Se o elemento que você procura não for encontrado, os métodos retornarão a linha -1. Vamos tentar encontrar o número de série das letras A, K, Z, Яno alfabeto inglês, mas lembre-se que a indexação de caracteres em uma string em Java começa do zero:
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

Extraindo uma substring de uma string

Para extrair uma substring de uma string, a classe String em Java fornece métodos:
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
Vejamos como podemos usar os métodos de posicionamento de elemento e extração de substring para obter o nome do arquivo a partir de seu caminho:
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

Converter string em maiúsculas/minúsculas:

A classe String fornece métodos para converter uma string em maiúsculas e minúsculas:
  • toLowerCase()
  • toUpperCase()
Vejamos como esses métodos funcionam usando um exemplo:
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
Trabalhar com esta classe Java é estudado nos níveis iniciais do curso online JavaRush:

Fontes adicionais

Informações sobre a classe String também são fornecidas em outros artigos da comunidade JavaRush:
  1. Strings em Java – Este artigo aborda alguns princípios básicos sobre como trabalhar com strings em Java.
  2. Sequência Java. Perguntas e respostas da entrevista, parte 1 - este artigo discute perguntas da entrevista sobre o tema Stringe também fornece respostas às perguntas com explicações e exemplos de código.
  3. Strings em Java (classe java.lang.String) - este artigo fornece uma análise mais profunda da classe String e também discute as complexidades de trabalhar com essa classe.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION