FUNÇÕES MATEMÁTICAS E DE STRING As funções matemáticas são tratadas pela classe Math que pertence ao pacote java.lang, que é importado automaticamente pelo compilador. Dentro da classe Math existem 2 constantes: Math.PI =3,14159265..... Math.E= 2,7128182..... São os seguintes os métodos matemáticos: ceil floor max min sqrt pow random Método ceil – arredonda um valor double para o maior inteiro: Exemplo: double a = 5.2, b=5.6, c=-5.8; Math.ceil (a) = 6.0 Math.ceil (b) = 6.0 Math.ceil (c) = -5.0 Método floor – arredonda um valor double para o menor inteiro: Exemplo: double a = 5.2, b=5.6, c=-5.8; Math.floor (a) = 5.0 Math.floor (b) = 5.0 Math.floor (c) = -6.0 Método max – determina o maior valor entre 2 números de quaisquer tipos: int, long, float ou double. Exemplo: int a=10, b=15; double c = -5.9, d=-4.5; Math.max (a,b) = 15 Math.max (c,d) = -4,5 Math.max (a,c) = 10 1 Método min – determina o menor valor entre 2 números de quaisquer tipos: int, long, float ou double. Exemplo: int a=10, b=15; double c = -5.9, d=-4.5; Math.min (a,b) = 10 Math.min (c,d) = -5,9 Math.min (a,c) = -5,9 Método sqrt – extrai a raiz quadrada de um valor double. Se o número for negativo retornará NaN (valor inexistente) Exemplo: double a = 900, b=30.25; Math.sqrt (a) = 30 Math.sqrt (b) = 5.5 Método pow – eleva um valor double à potência estabelecida (também double). Exemplo: double base = 9, potencia=2; Math.pow (base, potencia) = 81 Math.pow (1234, 0 = 1 Math.pow(25, 0.5) = 5 Método random – gera um número aleatório entre 0.0 e 1.0, sendo que 1.0 nunca é gerado. Para gerar, por exemplo, números inteiros entre 0 e 99 pode-se usar o código abaixo: (int) (Math.random( ) * 100) Exercício: gerar 5 cartões de loteria contendo 6 números cada. Classe DecimalFormat Quando executamos operações tais como divisões ou multiplicações é comum obtermos resultados com várias casas decimais. Para contornar este problema, ou apresentar os dados de uma forma mais legível, é possível formatar os dados antes de apresentá-los. A classe que permite a formatação de dados é a classe DecimalFormat que pertence à classe java.text. que deve ser importada. Para tanto é necessário definir um formato (pattern). Caracteres Significado do pattern Manutenção de zeros não significativos, como zeros à esquerda, ou à direita 0 depois da vírgula Supressão de zeros não significativos # Inclusão do ponto decimal . Inclusão do separador de milhar , Identificação de números negativos 2 Exemplo: import java.text.DecimalFormat class ExemploFormato { public static void main (String arg[ ]) { DecimalFormat df= DecimalFormat( ); df.applyFormat(“#,##0.00”); float valor= 355.1; int num=1000; double media=.5; System.out.println(df.format(valor)); System.out.println(df.format(num)); System.out.println(df.format(media)); } } O resultado será: 355,10. 1.000 0,50 Classe Locale A linguagem java é utilizada em todo o mundo. Cada país tem seus padrões de representação para datas, medidas e unidade monetária. Estes padrões são configurados localmente nas máquinas através do sistema operacional. A classe Locale, que pertence ao pacote java.util identifica os padrões locais da máquina onde o código está sendo executado. Exemplo: import java.text.DecimalFormat import java.util.Locale class ExemploLocale { public static void main ( String args[]) { DecimalFormat df = new DecimalFormat( ); Locale local = Locale.getDefault( ); System.out.println (“Configurações do Sistema Operacional”); System.out.println (“Sigla: “ + local.getCountry( )); System.out.println (“País: ” + local.getDisplayCountry( )); System.out.println (“Idioma: ” + local.getDisplayLanguage( )); System.out.println (“Teclado: ” + local.getDisplayName( )); System.out.println (“ “); double valor = 1370.25; if (local.getCountry( ).equals (“BR”)) { df.applyPattern(“R$ #,##0.00”); } System.out.println (“valor: ” + df.format(valor )); } } 3 Funções String São funções (métodos) destinadas ao tratamento e manipulação de strings (cadeias de caracteres). Em java as strings são instâncias da classe String, isto é, geram objetos que possuem propriedades e métodos, diferente dos tipos primitivos como int, float, double, etc. São eles: length charAt toUpperCase toLowerCase substring trim replace valueOf IndexOf Método length - É usado para retornar o tamanho de uma determinada string, incluindo os espaços em branco presentes nela. O valor retornado é sempre um inteiro. Exemplo: class ExemploLength { public static void main (String args[ ]){ String frase=”Manipulação de Strings”; int tamanho; tamanho=frase.length( ); System.out.println(“ A frase “ + frase + “ tem “ + tamanho + “ caracteres); } } Método charAt(n) – Considerando que uma string é um conjunto (vetor) de caracteres, o método charAt retorna o caractere que ocupa a posição “n” dentro da String. Lembrando que a posição inicial é zero. Exemplo: class ExemplocharAt { public static void main (String args[ ]){ String frase=”Manipulação de Strings”; int i; for ( i =15; i < 22 ; i++) { System.out.print(frase.charAt(i)); } System.out.println(“ ”); } } 4 Métodos toUpperCase e toLowerCase São utilizados para transformar a string sobre a qual o método está sendo aplicado em letras maiúsculas ou minúsculas. Exemplo: class TransformaLetra { public static void main (String a[ ]){ String s1=”java”, s2; s2= s1.toUpperCase( ); System.out.println(s1 + “, “ + s2 + “, “ + s2.toLowerCase( )); } } Método substring(<inicio,[fim]>) Este método retorna uma cópia da parte especificada através dos argumentos inicio e opcionalmente fim. Quando apenas o inicio é fornecido, a string resultante é obtida a partir do índice indicado até o seu final. Quando o fim é especificado, a string resultante vai da posição inicial até a final (exclusive). Exemplo: Frase C U R S O D E J A V A Índice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 frase.substring(9) = JAVA frase.substring(6,8) = DE frase.substring(0,5) = CURSO Método trim Remove os espaços em branco que aparecem no início ou no fim de uma string. Frase A D O R O J A V A Índice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Exemplo: class RemoveEspaço { public static void main (String a[ ]){ String frase = “ ADORO JAVA “; System.out.println(“Frase original: “ + frase); System.out.println(“Frase sem espaços: “ + frase.trim( )); } } 5 Método replace (<caracteres a serem substituídos, substituição>) Substitui caracteres ou grupos de caracteres por outros indicados como argumento. Frase A D O R O J A V A Índice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Exemplo: frase.replace(“ ”, “”) – retira todos os espaços em branco frase.replace(“A”, “*”) – substitui todas as letras “A” por “*” Método valueOf(<dado>) Converte diversos tipos de dados em strings. Este método aceita tanto números (int, float, double) como cadeias de caracteres. Exemplo: class ValorDosNumeros { public static void main( String [] args) { String x=""; int a=11; long b = 222; float c=3333; double d = 4.4444; x=x + String.valueOf(a) + " - "; x=x + String.valueOf(b) + " - "; x=x + String.valueOf(c) + " - "; x=x + String.valueOf(d); System.out.println("Valores convertidos: "); System.out.println(x); } } Método indexOf(<caractere ou substring a ser localizado, [posição inicial]>) Usado para localizar caracteres ou substrings dentro de uma String. Caso haja sucesso na busca o valor retornado corresponde à localização (índice) do substring dentro do texto. Se o valor retornado for -1, significa que o substring procurado não foi localizado. Exemplo: class Índice { public static void main(String[] args) { String texto = “Exemplo de Programa”; char letra = ‘a’; System.out.println(“indice: “ + texto.indexOf(letra); System.out.println(“indice: “ + texto.indexOf(letra, 18); System.out.println(“indice: “ + texto.indexOf(“Programa”); System.out.println(“indice: “ + texto.indexOf(“de”, 5); } } 6