Fundamentos da Programação 6:
• Manipulação de caracteres
• Relação entre os tipos char e int
• Tipos de valor vs. tipos de referência
Apresentação 6 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
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á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
4. 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!
5. 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
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 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
10. 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».
11. 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!
12. 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!
13. 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?