ROT 13 en Java – Algoritmo y algunas variantes como ROT 1

Hoy voy a explicar el código fuente para implementar el algoritmo de cifrado ROT 13 en Java.

El método de cifrado llamado ROT 13 rota las letras del alfabeto 13 posiciones. Son 13 veces porque 13 es la mitad de la longitud del alfabeto inglés (es decir, 26).

Debido a que rota las letras justamente a la mitad, el método para descifrar es el mismo que se utiliza para cifrar.

Es decir, al cifrar, la letra a se convierte en n. Y al cifrar de nuevo la n, se convierte en a, por lo que podemos concluir en que el mismo método sirve para cifrar y descifrar.

ROT 13 en Java y algunas variantes como ROT 1

ROT 13 es una variante del cifrado César (el cual ya implementé en Java) pero a diferencia de ROT 13, para descifrar usando el método César se necesita rotar la cadena a la izquierda.

Una vez explicado esto veamos el código y la explicación para implementar ROT 13 en Java.

También veremos algunas variantes de ROT 13 como ROT 1, y a partir de ello podremos ver cómo implementar ROT 2, ROT 3, etcétera (pues son rotaciones al final del día)

(más…)

Android: solución a Resources$NotFoundException: String resource ID

Este es un post rápido en donde voy a explicar cómo se origina el error y cómo arreglar el error que dice algo así:

Resources$NotFoundException: String resource ID at android.content.res.Resources.getText at android.widget.TextView.setText

El error nos está indicando que no encuentra un recurso con determinado ID al llamar al método setText de un TextView. Vamos a ver cómo arreglarlo y sus orígenes, para que a la próxima no ocurra de nuevo.

(más…)

Codificar y decodificar Base 64 en Ruby

Base64 se utiliza para convertir datos binarios en una representación utilizando únicamente caracteres del código ASCII. Muchos lenguajes de programación lo incorporan por defecto, entre ellos Ruby.

Hoy veremos cómo codificar y decodificar el formato base 64 en Ruby, con un módulo que ya viene en la librería estándar.

(más…)

Usar find e index para buscar posición de carácter en cadena con Python 3

Posición o índice de un carácter o subcadena en cadena de Python

Vamos a ver cómo obtener el índice numérico de un carácter o letra en una cadena de Python 3. No importa si lo que buscamos es un simple carácter o una subcadena, ambas formas serán cubiertas.

Usar find e index para buscar posición de carácter en cadena con Python 3

Usar find e index para buscar posición de carácter en cadena con Python 3

Los métodos de las cadenas que tiene Python para resolver este problema son dos: find e index. Vamos a explicar cómo se usa cada uno de ellos con ejemplos.

(más…)

Separar cadena a partir de delimitadores en C con strtok

Dividir cadena en C por cada espacio, guión, coma, entre otros

En C no existe la función split como en otros lenguajes; en donde simplemente ponemos un delimitador y nos devuelve un arreglo; pero tenemos una función que incluso puede ser más poderosa. Esta función de la que hablo (la cual se llama strtok) nos permitirá dividir una cadena usando un delimitador; por ejemplo una coma.

A partir de una cadena, podemos usar delimitadores para obtener tokens. Pongamos a la cadena “Hola, qué tal. Vamos a programar en C”; si la separamos usando el espacio, las comillas y los signos de puntuación obtendríamos las palabras limpias.

Por poner otro ejemplo, dada una lista delimitada por comas podemos obtener sus elementos. De “Juan,Pedro,María,Rosa” podemos obtener 4 nombres; usando la coma como delimitador.

(más…)

Comparar cadenas en Java usando equals y compareTo: la forma correcta

Introducción

Comparar strings o cadenas en Java es algo simple de hacer, pero que podemos hacer mal si no sabemos cuál es la forma correcta. Recordemos que Java trata a las cadenas como objetos, no como tipos primitivos.

Debido a eso, comparar cadenas en Java requiere algo más que usar el operador de igualdad ==. Veamos hoy cómo podemos comparar cadenas, ya sea para saber si son equivalentes o para saber si una es menor o mayor que otra según el alfabeto.

(más…)

Cómo ordenar arreglos en JavaScript usando sort

Introducción

JavaScript es un lenguaje criticado por muchas personas, precisamente por sus métodos o maneras de hacer las cosas. Una de las cosas más criticadas es cómo ordenar arreglos en JavaScript.

Este lenguaje proporciona todo lo que necesitamos para ordenar arreglos, ya sean arreglos de cadenas, de enteros o incluso de objetos; porque nos permite definir una función de ordenamiento.

Pero bueno, vamos a ver algunos ejemplos para que quede claro. Ordenaremos en orden ascendente y descendente, arreglos de strings, de números y de objetos, usando el método sort.

Espero que después de este post no te queden dudas sobre cómo ordenar arrays. Cubriré los casos más comunes.

Finalmente quiero aclarar que esto funciona tanto en JavaScript del lado del navegador, como en JS del lado del servidor usando Node.JS.

(más…)