Aula 5Manipulação de caracteresRelação entre os tipos char e intTipos de valor vs. tipos de referência
Da aula anterior…Atribuições especiaisMatrizes em JavaTipos de ciclos (ciclo for)Classes pacote2010/2011Introdução à Programação - DCTI - ISCTE-IUL2
Tipo primitivo charCada variável char guarda um caractereValores literais entre plicasExemplochar letter = 'k';2010/2011Introdução à Programação - DCTI - ISCTE-IUL3letterletter : charoukk
Caracteres: códigosCada caractere tem código únicoCódigos de letras latinas ConsecutivosOrdem alfabéticaMinúsculas e maiúsculas separadas2010/2011Introdução à Programação - DCTI - ISCTE-IUL4Sem marcas diacríticas!
Conversão entre char e intCaracteres convertíveis para códigosCódigos convertíveis para caracteresExemplochar original = 'b';int code = (int) original;char recovered = (char) code; 2010/2011Introdução à Programação - DCTI - ISCTE-IUL5originalbcode98recoveredb
Caracteres: operadores aritméticoschar letter1 = 'c';letter1++;char letter2 = 'b';letter2--;intdifference =    letter1 – letter2;2010/2011Introdução à Programação - DCTI - ISCTE-IUL6letter1letter1cdletter2letter2badifference3100 - 97
Caracteres: operadores relacionaisComparam códigos!Exemplosc > '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 c22010/2011Introdução à Programação - DCTI - ISCTE-IUL7
Exemplo: matriz com minúsculas por ordem alfabéticafinal intnumberOfLetters =     'z' – 'a' + 1; // 26final char[] letters =     new char[numberOfLetters];for(inti = 0; i != letters.length; i++)   letters[i] = (char) ('a' + i);2010/2011Introdução à Programação - DCTI - ISCTE-IUL8
Variáveis que guardam referências.Atribuição: valor vs. referênciaTipos primitivos (int, boolean, etc.)int a = 7;int b = a;int c;Tipos de referência (matrizes, classes)int[] a = {1, 2, 3};int[] b = a;int[] c;2010/2011Introdução à Programação - DCTI - ISCTE-IUL9aa7Variáveis que guardam valores.bb7123cc012Excepto no caso de variáveis locais. Variáveis locais têm sempre de ser inicializadas explicitamente.Excepto no caso de variáveis locais. Variáveis locais têm sempre de ser inicializadas explicitamente.0null
Invocação: passagem por valorpublicstaticvoidincrement(intvalue) {value++;}… main(…) {intnumber = 3;increment(number);    out.println(number);}19-10-2010Introdução à Programação10value = numbernumbervaluevalue334Que aparece?
Invocação: passagem por valor de uma referênciapublicstaticvoidincrementFirstOf(final int[] values) {values[0]++;}… main(…) {int[] numbers = {1, 2, 3, 4};incrementFirstOf(numbers);    out.println(numbers[0]);}19-10-2010Introdução à Programação11values = numbersnumbersvalues012321043Que aparece?
Problema: Cifra de César2010/2011Introdução à Programação - DCTI - ISCTE-IUL12abcxyz…abcdez…Cifra com deslocação de 2.atacarcvcectcifraSaiba mais na Wikipédia.
A reterManipulação de caracteresRelação entre os tipos char e intTipos de valor vs. tipos de referência2010/2011Introdução à Programação - DCTI - ISCTE-IUL13
A ler...Capítulos 1 a 4 do livro:Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-62010/2011Introdução à Programação - DCTI - ISCTE-IUL14
SumárioManipulação de caracteresRelação entre os tipos char e intTipos de valor vs. tipos de referência2010/2011Introdução à Programação - DCTI - ISCTE-IUL15

Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência

  • 1.
    Aula 5Manipulação decaracteresRelação entre os tipos char e intTipos de valor vs. tipos de referência
  • 2.
    Da aula anterior…AtribuiçõesespeciaisMatrizes em JavaTipos de ciclos (ciclo for)Classes pacote2010/2011Introdução à Programação - DCTI - ISCTE-IUL2
  • 3.
    Tipo primitivo charCadavariável char guarda um caractereValores literais entre plicasExemplochar letter = 'k';2010/2011Introdução à Programação - DCTI - ISCTE-IUL3letterletter : charoukk
  • 4.
    Caracteres: códigosCada caracteretem código únicoCódigos de letras latinas ConsecutivosOrdem alfabéticaMinúsculas e maiúsculas separadas2010/2011Introdução à Programação - DCTI - ISCTE-IUL4Sem marcas diacríticas!
  • 5.
    Conversão entre chare intCaracteres convertíveis para códigosCódigos convertíveis para caracteresExemplochar original = 'b';int code = (int) original;char recovered = (char) code; 2010/2011Introdução à Programação - DCTI - ISCTE-IUL5originalbcode98recoveredb
  • 6.
    Caracteres: operadores aritméticoscharletter1 = 'c';letter1++;char letter2 = 'b';letter2--;intdifference = letter1 – letter2;2010/2011Introdução à Programação - DCTI - ISCTE-IUL6letter1letter1cdletter2letter2badifference3100 - 97
  • 7.
    Caracteres: operadores relacionaisComparamcódigos!Exemplosc > '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 c22010/2011Introdução à Programação - DCTI - ISCTE-IUL7
  • 8.
    Exemplo: matriz comminúsculas por ordem alfabéticafinal intnumberOfLetters = 'z' – 'a' + 1; // 26final char[] letters = new char[numberOfLetters];for(inti = 0; i != letters.length; i++) letters[i] = (char) ('a' + i);2010/2011Introdução à Programação - DCTI - ISCTE-IUL8
  • 9.
    Variáveis que guardamreferências.Atribuição: valor vs. referênciaTipos primitivos (int, boolean, etc.)int a = 7;int b = a;int c;Tipos de referência (matrizes, classes)int[] a = {1, 2, 3};int[] b = a;int[] c;2010/2011Introdução à Programação - DCTI - ISCTE-IUL9aa7Variáveis que guardam valores.bb7123cc012Excepto no caso de variáveis locais. Variáveis locais têm sempre de ser inicializadas explicitamente.Excepto no caso de variáveis locais. Variáveis locais têm sempre de ser inicializadas explicitamente.0null
  • 10.
    Invocação: passagem porvalorpublicstaticvoidincrement(intvalue) {value++;}… main(…) {intnumber = 3;increment(number); out.println(number);}19-10-2010Introdução à Programação10value = numbernumbervaluevalue334Que aparece?
  • 11.
    Invocação: passagem porvalor de uma referênciapublicstaticvoidincrementFirstOf(final int[] values) {values[0]++;}… main(…) {int[] numbers = {1, 2, 3, 4};incrementFirstOf(numbers); out.println(numbers[0]);}19-10-2010Introdução à Programação11values = numbersnumbersvalues012321043Que aparece?
  • 12.
    Problema: Cifra deCésar2010/2011Introdução à Programação - DCTI - ISCTE-IUL12abcxyz…abcdez…Cifra com deslocação de 2.atacarcvcectcifraSaiba mais na Wikipédia.
  • 13.
    A reterManipulação decaracteresRelação entre os tipos char e intTipos de valor vs. tipos de referência2010/2011Introdução à Programação - DCTI - ISCTE-IUL13
  • 14.
    A ler...Capítulos 1a 4 do livro:Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-62010/2011Introdução à Programação - DCTI - ISCTE-IUL14
  • 15.
    SumárioManipulação de caracteresRelaçãoentre os tipos char e intTipos de valor vs. tipos de referência2010/2011Introdução à Programação - DCTI - ISCTE-IUL15