Beruflich Dokumente
Kultur Dokumente
SEMESTRE OTOÑO/2007
14/10/yyyy 1
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
byte -> short -> int -> long -> float -> double
char -> int -> long -> float -> double
// byte -> short -> int -> long -> float -> double
// char -> int -> long -> float -> double
class conversiontipos
{
14/10/yyyy 2
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
// Convierto de long a float
puntoFlotante = (float) enteroLargo;
// Convierto de float a Double
decimal = (double) puntoFlotante;
14/10/yyyy 3
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
Números
numberFormatter = NumberFormat.getNumberInstance(currentLocale);
amountOut = numberFormatter.format(amount);
System.out.println(amountOut + " " + currentLocale.toString());
Monedas
currencyFormatter =
NumberFormat.getCurrencyInstance(currentLocale);
14/10/yyyy 4
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
currencyOut = currencyFormatter.format(currency);
System.out.println(currencyOut + " " + currentLocale.toString());
A primera vista, esta salida podría parecer errónea, porque los valores
numéricos son iguales. Por supesto, 9 876 543,21 F no es equivalente a
9.876.543,21 DM. Sin embargo, recuerda que la clase NumberFormat
no puede cambiar monedas. Los métodos pertenecientes a la clase
NumberFormat formatean monedas, pero no las convierten.
Porcentajes
percentFormatter = NumberFormat.getPercentInstance(currentLocale);
percentOut = percentFormatter.format(percent);
14/10/yyyy 5
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
utilizar la clase NumberFormat, que se describió en la sección anterior,
en vez de DecimalFormat y DecimalFormatSymbols.
Construir Patrones
14/10/yyyy 6
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
inmediatamente al dígito más a
la izquierda de la salida
formateada.
12345.6 \u00a5###,# ¥12,345. El patrón específica el signo
7 ##.### 67 del Yen Japonés (¥) con su valor
Unicode \u00a5.
NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
String output = df.format(value);
System.out.println(pattern + " " + output + " " + loc.toString());
Por eso, los patrones de formateo que hemos utilizado hasta ahora
seguían las convenciones del Inglés Norteamericano. Por ejemplo, en el
patrón "###,###.##" la coma es el separador de millares y el punto
representa el punto decimal. Esta convención está bien, sabiendo que
los usuarios finales no están expuestos a ellas. Sin embargo, algunas
aplicaciones, como las hojas de cálculo y los generadores de informes,
permiten al usuario final definir sus propios patrones de formateo. Para
esas aplicaciones, los patrones de formateo especificados por el usuario
final deberían utilizar la notación localizada. En estos casos querremos
llamar al método applyLocalizedPattern sobre el objeto
DecimalFormat.
14/10/yyyy 7
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
millares, el signo menos, y el signo de porcentaje además de algunos
más.
1^2345|678
patrón := subpatrón{;subpatrón}
subpatrón := /javaentero{.fracción}{sufijo}
prefijo := '\\u0000'..'\\uFFFD' - CaracteresEspeciales
sufijo := '\\u0000'..'\\uFFFD' - CaracteresEspeciales
entero := '#'* '0'* '0'
14/10/yyyy 8
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
fracción := '0'* '#'*
Notaci
Descripción
ón
X* 0 o más ejemplares de X
(X | XoY
Y)
X..Y cualquier caracter de X a Y, inclusives
S-T Los caracteres que estén en S, exceptos los
que estén en T
{X} X es opcional
Símbo
Descripción
lo
0 Un dígito
# Un dígito, se muestra 0 si no existe
. Situación del separador decimal
, Situación del separador de millares
E Separa el exponente y la mantisa para formatos exponenciales
; Separa formatos
- Prefijo negativo por defecto
% Multiplica por 100 y lo muestra como porcentaje
? Multiplica por 1000 y lo muestra como por mil
¤ signo de moneda, reemplazado por un símbolo de moneda; Si
es doble, reemplazado por el símbolo de moneda internacional;
si está presente en el patrón, se utiliza el separador decimal
monetario en vez de el separador decimal.
X Se puede utilizar cualquier otro caracter como prefijo o sufijo
' utilizado para enmarcar caracteres especiales en prefijos o
sufijos.
14/10/yyyy 9
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
Clase String
String str="";
String str=new String();
String str;
14/10/yyyy 10
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
pos=str.indexOf('p', pos+1);
14/10/yyyy 11
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
int pos=str.indexOf("pro");
Vemos que una clase puede definir varias funciones miembro con el
mismo nombre pero que tienen distinto número de parámetros o de
distinto tipo.
14/10/yyyy 12
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
Comparación de strings
La comparación de strings nos da la oportunidad de distinguir entre el
operador lógico == y la función miembro equals de la clase String. En el
siguiente código
Esta porción de código devolverá que str1 y str2 son dstintos objetos
pero con el mismo contenido. str1 y str2 ocupan posiciones distintas en
memoria pero guradan los mismos datos.
String str="Tomás";
int resultado=str.compareTo("Alberto");
14/10/yyyy 13
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
La variable entera resultado tomará un valor mayor que cero, ya que
Tomás está después de Alberto en orden alfabético.
String str="Alberto";
int resultado=str.compareTo("Tomás");
int valor=10;
String str=String.valueOf(valor);
14/10/yyyy 14
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
Esta función se emplea mucho cuando programamos applets, por
ejemplo, cuando queremos mostrar el resultado de un cálculo en el área
de trabajo de la ventana o en un control de edición.
String str="12";
int numero=Integer.valueOf(str).intValue();
La clase StringBuffer
En la sección dedicada a los operadores hemos visto que es posible
concatenar cadenas de caracteres, es, decir, objetos de la clase String.
Ahora bien, los objetos de la clase String son constantes lo cual significa
14/10/yyyy 15
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
que por defecto, solamente se pueden crear y leer pero no se pueden
modificar.
14/10/yyyy 16
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
// Estimados Alumnos Trabajemos con los metodos que tiene la clase
String
// Profesor : Pedro González Tapia
// int length () Devuelve el número de caracteres de la cadena
// char charAt (int pos) Devuelve el caracter que se encuentra en la
posición pos
// equals (String otra) Determina si la cadena es igual al String otra
// int compareTo (String otra) Comparación lexicográfica. Devuelve 0 si
los dos String son iguales, un número negativo si el String que invoca a
comparteTo es menor que el String quese pasa como argumento y un
número positivo en caso contrario. Elvalor devuelto es la diferencia entre
las representaciones enteras del primercarácter que es diferente en
cada String.
// String substring crea unnuevo objeto String copiando parte de un
objeto String existente. String (int), String (int, int)
// String concat (String otra) Concatena dos String y devuelve un nuevo
objeto String que contiene los caracteresde los dos String originales.
// S1.concat (s2) añade los caracteres del String s2 al final de s1.S1 y s2
no se modifica
// String replace (char, char) genera un objeto String en el que cada
ocurrencia del primer carácter en elstring con que se invoca se
substituye por el segundo carácter. Sino hubiera coincidencias se
regresa una copia del string original.
// String toUpperCase ( ) Regresa un objeto de la clase String igual
pero cuyas caracteres son todos mayúsculas
// String toLowerCase () Regresa un String con todos los caracteres en
minúsculas
class cadenasMetodo {
public static void main() {
largoCadena();
devuelvePosicion();
comparaCadenas();
comparaLexico();
subCadena();
concatena();
adicionaCadena();
reemplaza();
mayusculas();
minusculas();
}
static void largoCadena () {
String Alumnos = "Alumnos del IPP";
System.out.println ("El largo de la cadena es : " +
Alumnos.length());
}
static void devuelvePosicion() {
14/10/yyyy 17
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
String Alumnos = "Alumnos del IPP";
System.out.println ("El largo de la cadena es : "+
Alumnos.charAt(10));
}
static void comparaCadenas() {
String cadena1 = "Hola", cadena2 = "Chao";
if (cadena1.equals(cadena2)) {
System.out.println("Son iguales");
} else {
System.out.println("No son iguales");
}
}
static void comparaLexico() {
String cadena1 = "Hola", cadena2 = "Chao";
if (cadena1.compareTo(cadena2) == 0) {
System.out.println("Son iguales");
} else {
System.out.println("No son iguales");
}
}
static void subCadena () {
String Alumnos = "Alumnos del IPP";
System.out.println ("El largo de la cadena es : "+
Alumnos.substring(0,5));
}
static void concatena () {
String cadena1 = "Soy Alumno";
String cadena2 = " Del IPP";
System.out.println ("El largo de la cadena es : "+
cadena1.concat(cadena2));
}
static void adicionaCadena () {
String cadena1 = "Soy Alumno";
String cadena2 = " Del IPP";
System.out.println ("El largo de la cadena es : "+
cadena1.concat(cadena2));
}
14/10/yyyy 18
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
System.out.println ("El largo de la cadena es : " +
cadena1.toUpperCase());
}
static void minusculas () {
String cadena1 = "Soy Alumno";
System.out.println ("El largo de la cadena es : " +
cadena1.toLowerCase());
}
}
14/10/yyyy 19
FUNDAMENTOS DE PROGRAMACION
SEMESTRE OTOÑO/2007
Bibliografía
http://www.programacion.net
http://www.janeg.ca/scjp/oper/conversions.html
14/10/yyyy 20