Posts

Showing posts with the label Tips

Conversão de base

Considere d um valor inteiro na base decimal ... - Para converter um número decimal em binário: String binarioD = Integer.toBinaryString(d); - Para converter um número decimal em hexadecimal: String hexadecimalD = Integer.toHexString(d); Considere b uma String de um valor binário ... - Para converter um número binário em decimal: int decimalB = Integer.parseInt(b, 2); - Para converter um número binário em hexadecimal: int hexadecimalB = Integer.toHexString(decimalB); Considere h uma String de um valor hexadecimal ... - Para converter um número hexadecimal em decimal: int decimalH = Integer.parseInt(h, 16); - Para converter um número hexadecimal em binário: int hexadecimalB = Integer.toBinaryString(decimalH); Fonte de consulta: http://www.activeinfo.com.br/curso_programacao/conversao_entre_bases.html

Estruturas

Exemplo de pilha: Stack<Character> pilha = new Stack<>(); (deprecated) Usar: Deque<Character> pilha = new ArrayDeque<>(); http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html Usar um Stack é mais eficiente do que utilizar um ArrayList como se fosse uma pilha. Exemplo de lista: ArrayList<Integer> lista = new ArrayList<>(); http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

Leitor de inteiros

static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         int sinal = 1;         while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;             if (n == '-') sinal = -1;             if (n == '+') sinal = 1;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();     ...

Informações interessantes - valueOf x parse

Várias classes possuem os métodos parse e valueOf . Por exemplo, na classe Integer , o método valueOf obtém uma instância de Integer , já o método parseInt (lida com sinal de -) obtém um valor int , ou seja, parseInt retorna um tipo primitivo int e valueOf retorna um objeto Integer . O método Integer.valueOf retornará um novo objeto do tipo Integer se o valor for < -128 ou > 127. Caso contrário, ele retornará um objeto de um pool, já previamente criado. Ou seja: Integer.valueOf(10) == Integer.valueOf(10), porém Integer.valueOf(1000) != Integer.valueOf(1000) Por isso, para a comparação entre dois wrappers de tipo primitivo, como o "Integer" , use o método equals e não == . Esse aviso fica especialmente importante agora que o java implementa auto-unboxing.  Integer.valueOf pega um tipo primitivo int ou uma string e retorna um objeto do tipo Integer .  Você também pode passar número em outras bases que ele transforma para a base decimal, veja...