Cadeias de caracteres (strings)

Livro de Sedgewick e Wayne: sec.1.2, p.74, p.80.  Também a introdução do capítulo 5.  Website do livro: resumo sec.1.2.

Cadeias de caracteres são um ADT básico (que já usamos em muitas das aulas anteriores). Em Java, cadeias de caracteres são representadas pela classe String.  Esta página discute a API da classe String (mas evita tratar das implementações).

Destaques:

Pré-requisitos:

String

Exercícios 1

  1. Qual a diferença entre null e a string ""?
  2. Suponha que s é uma String.  Qual o valor de s.substring(0,-1)?
  3. É verdade que s.substring(i) é igual a s.substring(i, s.length())?

Imutabilidade

Exercícios 2

  1. (SW 1.2.4)  O que imprime o seguinte fragmento de código?
       String string1 = "hello";
       String string2 = string1;
       tring1 = "world";
       StdOut.println(string1);
       StdOut.println(string2);
    
  2. (SW 1.2.5)  O que imprime o seguinte fragmento de código?
       String s = "Hello World";
       s.toUpperCase();
       s.substring(6, 11);
       StdOut.println(s);
    

Implementações

Exercícios 3

  1. Implemente a classe String em um vetor de caracteres (é necessário tomar providências para que String seja imutável, como desejado). Qual o desempenho dos diversos métodos dessa implementação?