Manipulação de caracteres
Relação entre os tipos char e int
Tipos de valor vs. tipos de referência
 Atribuições especiais
 Arrays em Java
 Instruções de iteração:
 while e do-while
 for e foreach
 Classes-pacote
2013/2014 Fundamentos de Programação 2
 Cada variável char guarda um caractere
 Valores literais entre plicas
 Exemplo
 char letter = 'k';
2013/2014 Fundamentos de Programação 3
‘k’
letter
‘k’
letter : char
ou
 Cada caractere tem
código único
 Códigos de letras
latinas
 Consecutivos
 Ordem alfabética
 Minúsculas e maiúsculas
separadas
Caractere Código
… …
A 65
… …
Z 90
… …
a 97
… …
z 122
… …
2013/2014 Fundamentos de Programação 4
Sem marcas
diacríticas!
 Caracteres convertíveis para códigos
 Códigos convertíveis para caracteres
 Exemplo
 char original = 'b';
 int code = (int) original;
 char recovered = (char) code;
2013/2014 Fundamentos de Programação 5
‘b’
original
98
code
‘b’
recovered
char letter1 = 'c';
letter1++;
char letter2 = 'b';
letter2--;
final int difference =
letter1 - letter2;
2013/2014 Fundamentos de Programação 6
100 - 97
‘c’
letter1
‘b’
letter2
3
difference
‘d’
letter1
‘a’
letter2
 Comparam códigos!
 Exemplos
 c > 'a' – Caractere em c tem código superior ao
de ‘a’
 c1 <= c2 – Caractere em c1 tem código não
superior ao caractere em c2
2013/2014 Fundamentos de Programação 7
final int numberOfLetters =
'z' - 'a' + 1; // 26
final char[] letters =
new char[numberOfLetters];
for(int i = 0; i != letters.length; i++)
letters[i] = (char) ('a' + i);
2013/2014 Fundamentos de Programação 8
2013/2014 Fundamentos de Programação 9
Saiba mais naWikipédia.
Cifra com
deslocação de 2.
a b c x y z…
a b c d e z…
a t a c a r
c v c e c t
cifra
Variáveis que
guardam
referências.
Tipos de valor (int, boolean,
etc.)
int a = 7;
int b = a;
int c;
Tipos de referência (arrays,
classes)
int[] a = {1, 2, 3};
int[] b = a;
int[] c;
2013/2014 Fundamentos de Programação 10
7
a
7
b
0
c
Excepto no caso
de variáveis locais.
Variáveis locais
têm sempre de ser
inicializadas
explicitamente.
a
b
null
c
Excepto no caso
de variáveis locais.
Variáveis locais
têm sempre de ser
inicializadas
explicitamente.
1 2 3
0 1 2
Variáveis que
guardam valores.
Valor especial
significando «não
referencia nada».
public static void increment(int value) {
value++;
}
… main(…) {
int number = 3;
increment(number);
out.println(number);
}
2013/2014 Fundamentos de Programação 11
Que aparece?
Pois! Este
procedimento
está errado!
public static void increment(int value) {
value++;
}
… main(…) {
int number = 3;
increment(number);
out.println(number);
}
2013/2014 Fundamentos de Programação 12
value = number
3
number
3
value
4
value
Aparece 3!
public static void incrementFirstOf(final int[] values) {
values[0]++;
}
… main(…) {
final int[] numbers = {3, 2, 1, 0};
incrementFirstOf(numbers);
out.println(numbers[0]);
}
2013/2014 Fundamentos de Programação 13
Que aparece?
public static void incrementFirstOf(final int[] values) {
values[0]++;
}
… main(…) {
int[] numbers = {3, 2, 1, 0};
incrementFirstOf(numbers);
out.println(numbers[0]);
}
2013/2014 Fundamentos de Programação 14
values = numbers
numbers
values
Aparece 4!
2 1 0
0 1 2 3
43
 Manipulação de caracteres
 Relação entre os tipos char e int
 Tipos de valor vs. tipos de referência
2013/2014 Fundamentos de Programação 15
 Manipulação de caracteres
 Relação entre os tipos char e int
 Tipos de valor vs. tipos de referência
2013/2014 Fundamentos de Programação 16

6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos de Programação

  • 1.
    Manipulação de caracteres Relaçãoentre os tipos char e int Tipos de valor vs. tipos de referência
  • 2.
     Atribuições especiais Arrays em Java  Instruções de iteração:  while e do-while  for e foreach  Classes-pacote 2013/2014 Fundamentos de Programação 2
  • 3.
     Cada variávelchar guarda um caractere  Valores literais entre plicas  Exemplo  char letter = 'k'; 2013/2014 Fundamentos de Programação 3 ‘k’ letter ‘k’ letter : char ou
  • 4.
     Cada caracteretem código único  Códigos de letras latinas  Consecutivos  Ordem alfabética  Minúsculas e maiúsculas separadas Caractere Código … … A 65 … … Z 90 … … a 97 … … z 122 … … 2013/2014 Fundamentos de Programação 4 Sem marcas diacríticas!
  • 5.
     Caracteres convertíveispara códigos  Códigos convertíveis para caracteres  Exemplo  char original = 'b';  int code = (int) original;  char recovered = (char) code; 2013/2014 Fundamentos de Programação 5 ‘b’ original 98 code ‘b’ recovered
  • 6.
    char letter1 ='c'; letter1++; char letter2 = 'b'; letter2--; final int difference = letter1 - letter2; 2013/2014 Fundamentos de Programação 6 100 - 97 ‘c’ letter1 ‘b’ letter2 3 difference ‘d’ letter1 ‘a’ letter2
  • 7.
     Comparam códigos! Exemplos  c > 'a' – Caractere em c tem código superior ao de ‘a’  c1 <= c2 – Caractere em c1 tem código não superior ao caractere em c2 2013/2014 Fundamentos de Programação 7
  • 8.
    final int numberOfLetters= 'z' - 'a' + 1; // 26 final char[] letters = new char[numberOfLetters]; for(int i = 0; i != letters.length; i++) letters[i] = (char) ('a' + i); 2013/2014 Fundamentos de Programação 8
  • 9.
    2013/2014 Fundamentos deProgramação 9 Saiba mais naWikipédia. Cifra com deslocação de 2. a b c x y z… a b c d e z… a t a c a r c v c e c t cifra
  • 10.
    Variáveis que guardam referências. Tipos devalor (int, boolean, etc.) int a = 7; int b = a; int c; Tipos de referência (arrays, classes) int[] a = {1, 2, 3}; int[] b = a; int[] c; 2013/2014 Fundamentos de Programação 10 7 a 7 b 0 c Excepto no caso de variáveis locais. Variáveis locais têm sempre de ser inicializadas explicitamente. a b null c Excepto no caso de variáveis locais. Variáveis locais têm sempre de ser inicializadas explicitamente. 1 2 3 0 1 2 Variáveis que guardam valores. Valor especial significando «não referencia nada».
  • 11.
    public static voidincrement(int value) { value++; } … main(…) { int number = 3; increment(number); out.println(number); } 2013/2014 Fundamentos de Programação 11 Que aparece? Pois! Este procedimento está errado!
  • 12.
    public static voidincrement(int value) { value++; } … main(…) { int number = 3; increment(number); out.println(number); } 2013/2014 Fundamentos de Programação 12 value = number 3 number 3 value 4 value Aparece 3!
  • 13.
    public static voidincrementFirstOf(final int[] values) { values[0]++; } … main(…) { final int[] numbers = {3, 2, 1, 0}; incrementFirstOf(numbers); out.println(numbers[0]); } 2013/2014 Fundamentos de Programação 13 Que aparece?
  • 14.
    public static voidincrementFirstOf(final int[] values) { values[0]++; } … main(…) { int[] numbers = {3, 2, 1, 0}; incrementFirstOf(numbers); out.println(numbers[0]); } 2013/2014 Fundamentos de Programação 14 values = numbers numbers values Aparece 4! 2 1 0 0 1 2 3 43
  • 15.
     Manipulação decaracteres  Relação entre os tipos char e int  Tipos de valor vs. tipos de referência 2013/2014 Fundamentos de Programação 15
  • 16.
     Manipulação decaracteres  Relação entre os tipos char e int  Tipos de valor vs. tipos de referência 2013/2014 Fundamentos de Programação 16

Notas do Editor