Sunteți pe pagina 1din 39

Java Parte I

Jr. Ayacucho 263 -Huancayo Telf: 201461


1
Curso de Java Bsico
Primera parte
Por Antonio Poma
Aprenda el ltimo y ms novedoso Lenguaje de programacin, de una forma fcil y
sencilla con este manual que Cibertronic pone a su disposicin.
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
2
CONTENIDO
PROGAMA NETBEANS
I.- LOS PRIMEROS PASOS
1). Iniciando el Programa
2). La interface Inicial del Programa
3). Creando un proyecto e insertando un archivo Java
4). EL PROGRAMA Hola mundo:
5). Creando otro programa en el proyecto
II.- INGRESO DE DATOS DESDE EL TECLADO
Tipos de datos
III.- SENTENCIAS PARA INGRESAR DATOS SEGN SU TIPO
IV.- OPERADORES ARITMTICOS
VI.- Operaciones matemticas: Clase Math
a) Funciones derivadas
b) Programa para generar un numero aleatorio entre 1 y 6:
c) Programa que ilustra la clase Math
VII.- LA CLASE Character
a) Declaraciones
b) Comprobaciones booleanas:
c) Traslaciones de caracteres
d) Traslaciones de carcter/dgito
e) Mtodos de la clase Character
f) Programa para ilustrar la clase carcter:
VII.- LA CLASE Float
a) Declaraciones
b) Valores de Float
c) Conversiones de Clase/Cadena
d) Comprobaciones
e) Conversiones de Objetos
f) Otros Mtodos
VIII.- LA CLASE Double
a) Declaraciones
b) Valores de Double
c) Mtodos de Double
IX.- LA CLASE Integer
a) Declaraciones
b) Valores de Integer
c) Mtodos de Integer
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
3
X.- LA CLASE Long
a) Declaraciones
b) Valores de Long
c) Mtodos de Long
XI.- LA CLASE Boolean
a) Declaraciones
b) Valores de Boolean
c) Mtodos de Boolean
XII.- LA CLASE String
a) Funciones Bsicas
b) Funciones de Comparacin de Strings
c) Funciones de Comparacin de Subcadenas
d) Funciones ValueOf
XII.- LA CLASE StringBuffer
a) Cambio de Tamao
b) Modificacin del Contenido
c) Operadores de Concatenacin
XIII.- CONTROL DE FLUJO
a) Sentencias de Salto
if/else
switch
b) Sentencias de Bucle
Bucles for
Bucles while
Bucles do/while
Control General del Flujo
XIV.- EJEMPLOS DE PROGRAMAS UTILIZANDO CONTROL DE FLUJO
a) Programa para crear la tabla de multiplicar de un nmero
b) Programa para determinar si un nmero es primo o no
c) Programa que imprime una serie de n nmeros primos
d) Programa que imprime los pares menores a un nmero
e) Programa que dibuja un rbol de asteriscos
f) Programa a para convertir un numero decimal a binario
Duke, la mascota de java
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
4
PROGAMA NETBEANS
Este programa constituye un ENTORNO INTEGRADO DE
DESARROLLO (IDE), es decir nos permite escribir, editar y probar
nuestros programas desde un mismo lugar, Un programa JAVA se
puede realizar desde cualquier editor de textos (bloc de notas por
ejm.) pero compilarlo y ejecutarlo nos dara mucho ms trabajo y
requerira de conocimientos sobre la lnea de comando de JAVA.
I.- LOS PRIMEROS PASOS
1). Iniciando el Programa
En las lista de programas buscar el grupo de programas NetBeans 5.5; si no est
instalado el programa en su mquina deber instalarlo, pera esto pude descargarlo
de la pgina del autor, tambin tendr que descargar e instalar la maquina virtual
JAVA.
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
5
2). La interface Inicial del Programa
3). Creando un proyecto e insertando un archivo Java
Lo primero que haremos ser un proyecto que contendr nuestros programas
a) En el men File iniciamos New Project
b) La categora de nuestro proyecto ser del tipo General: Java Application
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
6
c) Procedemos a dar un nombre a nuestro proyecto: Proyectos Basico
d) Seleccionamos una carpeta donde guardaremos todos los praganas que
realicemos en el proyecto.
e) Luego de dar un clic sobre finish ya tendremos nuestro proyecto listo para
iniciar la escritura de los programas
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
7
f) Seguidamente crearemos un nuevo archivo para escribir nuestro
programa
g) Los primeros programas que realizaremos los haremos como
clases(Categories: Java Classes)
h) El nuevo archivo que insertaremos en nuestro proyecto ser un archivo
java vacio(Empty Java File)
i) luego procedemos ha darle un nombre a nuestro programa(Class name)
para nuestro caso llamemos prog1
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
8
j) En hora buena, ya hemos creado un proyecto y un archivo java vaco,
ahora solo tendremos que escribir nuestro programa.
4). EL PROGRAMA Hola mundo:
a) En el editor de programas escribir:
import java.io.*;
public class prog1
{
public static void main(String[] args)
{
System.out.println(" HOLA MUNDO ");
}
}
b) Siempre que deseemos probar un programa deberemos compilarlo
O simplemente presionar la tecla F9
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
9
c) En la ventana output, veremos los resultados del proceso de compilacin
al que hemos sometido a nuestro programa.
d) Una vez compilado ya podemos probar el programa para esto ejecutamos
(run) el prog1:
O simplemente presionamos las teclas Maysculas + F6
e) Y as en la ventana OUTPUT tendremos la salida de nuestro programa:
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
10
f) El porqu de cada lnea
import java.io.*;
Para poder acceder a determinados procedimientos con los dispositivos
de la computadora, como en nuestro caso a la pantalla (Consola),
debemos de utilizar las Clases que estn programadas para tal motivo,
mediante la sentenciaimport.
public class prog1
Declaramos nuestro programa como una clase, aqu debemos utilizar el
mismo nombre del archivo que hemos guardado, para no tener problemas
al compilar
public static void main(String[] args)
Luego declaramos el mtodo para nuestra clase, para esta parte del
curso siempre usaremos un mtodo main como se muestra que ser el
principal, al ejecutar el programa el mtodo main es el primero en
ejecutarse
System.out.println(" HOLA MUNDO ");
En la lnea 7, se encuentra la sentencia que realiza el trabajo por as
decirlo, aqu se indica imprimir una lnea de texto (print - line) en el canal
de salida por defecto (la pantalla).
{ }
Las llaves en este caso nos permite indicar el inicio o el final de un a clase
o mtodo
Antes de continuar, asegrese de haber comprendido
bien los puntos tratados, el programa puesto de
ejemplo, lo debe de haber resuelto
satisfactoriamentede no ser as, busque apoyo
inmediatamente
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
11
5). Creando otro programa en el proyecto
a) No es necesario crear otro proyecto para crear otro programa bastara
aadir un nuevo archivo al proyecto
b) Aadiremos una clase en un archivo Java vacio
c) Llamaremos a la clase prog2
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
12
d) Observe la ventana Projects, vera que ya existen dos programas prog1 y
prog2
e) Escribimos el siguiente programa
import java.*;
public class prog2
{
public static void main(String[] args)
{
System.out.println("\n");
System.out.println(" ******************** ");
System.out.println(" ** PROGRAMANDO ** ");
System.out.println(" ** EN JAVA ** ");
System.out.println(" ******************** ");
System.out.println("\n");
}
}
f) Luego compilamosF9 y ejecutamosMaysculas + F6
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
13
Sentencia: System.out.println( Cadena de texto );
Utilizamos este mtodo de la clase java permite imprimir en la pantalla
una cadena de texto.
\n Representa un salto de linea, es decir un 8 , lo cual origina una
lnea en blanco en nuestro programa
II.- INGRESO DE DATOS DESDE EL TECLADO
a) Creamos otro programa prog3 y escribimos
import java.io.*;
public class prog3
{
public static void main(String[] args) throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader e = new BufferedReader(isr);
int a,b;
System.out.println("\n");
System.out.println("*********************** ");
System.out.println("** MINICALCULADORA ** ");
System.out.println("*********************** ");
System.out.println("Ingrese dos nmeros enteros: ");
a=Integer.parseInt(e.readLine());
b=Integer.parseInt(e.readLine());
System.out.println(" ,,w,, ");
System.out.println(" @ 0 0 @ ");
System.out.println("+-------oOO--(_)--OOo-------+ ");
System.out.println(" La suma es = " + (a+b));
System.out.println(" La resta es = " + (a-b));
System.out.println(" La Multip. es = " + (a*b));
System.out.println(" La Divicion es = " + (a/b));
System.out.println("+---------------------------+ ");
System.out.println("\n");
}
}
b) Compilar F9 y ejecutar maysculas + F6
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
14
c) Nuevas sentencias
Utilizar siempre estas sentencias para declarar el flujo de entrada para la variable e
Debido a que guardaremos los valores ledos desde el teclado en variables ser
necesario declararlas en este caso del tipo entero
Para leer y guardas los datos desde el teclado usaremos las siguientes sentencias
Como se puede observar para el caso de la divisin el resultado es 1, esto porque
tanto a y b fueron declarados como enteros y por lo tanto el programa realiza una
divisin entera.
En java tenemos los siguientes tipos de datos:
Enteros
Int 4 2147483648
Short 2 32768
Long 8 9223372036854775808
Byte 1 128 a 127
Reales
Float 4 + 3.40282347E+38
Double 8 + 179769313486231570E+308
Carcter Char
Cadena de caracteres String Lgicos True/False
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
15
III.- SENTENCIAS PARA INGRESAR DATOS SEGN SU TIPO:
a = Byte.parseByte ( e.readln() ) byte a
b = Short.parseShort ( e.readln() ) short b
c = Integer.parseInt ( e.readln() ) int c
d = Long.parseLong ( e.readln() ) long d
e = Float.parseFloat ( e.readln() ) float e
f = Double.parseDouble ( e.readln() ) double f
g = e.readln() String g
h= (char)System.in.read(); char h
IV.- OPERADORES ARITMTICOS
+ suma
- resta
* multiplicacin
/ divisin
++ aumentar en uno
- - disminuir en uno
% resto (residuo de la
divisin entera).
a) Programa que realiza las operaciones aritmeticas con nmeros doubl
import java.io.*;
public class prog4
{ public static void main(String[] args) throws IOException
{ InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader e = new BufferedReader(isr);
double a,b;
System.out.println("\n");
System.out.println("*********************** ");
System.out.println("** OPERADORES ** ");
System.out.println("*********************** ");
System.out.println("Ingrese dos nmeros con decimales:");
a= Double.parseDouble (e.readLine());
b= Double.parseDouble (e.readLine());
System.out.println(" ,,w,, ");
System.out.println(" @ 0 0 @ ");
System.out.println("+-------oOO--(_)--OOo-------+ ");
System.out.println(" La suma es = " + (a+b));
System.out.println(" La resta es = " + (a-b));
System.out.println(" La Multip. es = " + (a*b));
System.out.println(" La Divicion es = " + (a/b));
System.out.println(" a++: + a + ++ = + a++);
System.out.println(" Suma de a+b = + (a/b));
System.out.println("+---------------------------+ ");
}
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
16
Observamos que la primera suma a+b es 3.5 y luego en la siguiente suma a+b es 4.5, esto debido a que
hemos aplicado a++: esto hace que ha sea igual a 3
VI.- Operaciones matemticas: Clase Math
La claseMath nos permite realizar operaciones matemticas, El constructor de la
clase es privado, por los que no se pueden crear instancias de la clase. Sin
embargo, Math es public para que se pueda llamar desde cualquier sitio y static
para que no haya necesidad de importarla(import)
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
17
Entre lasfunciones mas utilizadas podemos citar:
Math.abs(a): Valor absoluto
Math.sin(a): Seno
Math.cos(a): Coseno
Math.tan(a): Tangente
Math.asin(a): Arcoseno
Math.acos(a): Arcocoseno
Math.atan(a): Arcotangente
Math.tan2(a,b): Arco tangente de dos
nmeros a/b
Math.exp(a): e elevado a un nmero
Math.log(a): Logaritmo
Math.sqrt(a): Raz cuadrada
Math.ceil(a): Nmero completo menor
Math.floor(a): Numero completo mayor
Math.rint(a): Parte entera
Math.pow(a,b): Un nmero elevado a otro
nmero
Math.round(a): Redondear ha entero
Math.random( ): Genera un numero al azar
entre 0 y 1
Math.max(a,b): El mayor de 2 nmeros
Math.min(a,b): El menor de 2 nmeros
Math.Pl : 3.1416
Math.E : 2.72
d) Funciones derivadas
Algunas otras funciones se consiguen operando las funciones anteriores, como se
muestra en el cuadro siguiente:
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
18
e) Programa para generar un numero aleatorio entre 1 y 6:
import java.io.*;
public class prog5
{ public static void main(String[] args)
{
double max=6,min=1,n;
System.out.println("\n");
System.out.println("*********************** ");
System.out.println("** numeros al azar ** ");
n=Math.rint((max-min)* Math.random() + min);
System.out.println("** " + n + " **");
n=Math.rint((max-min)* Math.random() + min);
System.out.println("** " + n + " **");
n=Math.rint((max-min)* Math.random() + min);
System.out.println("** " + n + " **");
n=Math.rint((max-min)* Math.random() + min);
System.out.println("** " + n + " **");
n=Math.rint((max-min)* Math.random() + min);
System.out.println("** " + n + " **");
System.out.println("*********************** ");
}}
v Todo Angulo deber estar en radianes
v Nmero al azar entre dos nmeros:
N= Math.rint((lmitesup - lmiteinf ) * math.random() +
lmiteinf)
Java Parte I
Jr. Ayacucho 263 -Huancayo Telf: 201461
19
f) Programa que ilustra la clase Math
public class prog6 {
public static void main( String args[] ) {
int x;
double rand,y,z;
float max;
rand = Math.random();
x = Math.abs( -123 );
y = Math.round( 123.567 );
z = Math.pow( 2,4 );
max = Math.max( (float)1e10,(float)3e9 );
System.out.println( rand );
System.out.println( x );
System.out.println( y );
System.out.println( z );
System.out.println( max );
}
}
VII.- LA CLASE Character
g) Declaraciones
La primera sentencia crear una variable carcter y la segunda un objeto
Character:
char c;
Character C;
h) Comprobaciones booleanas:
Character.isLowerCase( c )
Character.isUpperCase( c )
Character.isDigit( c )
Character.isSpace( c )
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 20
En este caso, si tuvisemos un objeto Character C, no se podra hacer
C.isLowerCase, porque no se ha hecho unnew de Character. Estas funciones son
estticas y no conocen al objeto, por eso hay que crealo antes.
i) Traslaciones de caracteres
char c2 = Character.toLowerCase( c );
char c2 = Character.toUpperCase( c );
j) Traslaciones de carcter/dgito
int i = Character.digit( c,base );
char c = Character.forDigit( i,base );
k) Mtodos de la clase Character
C = new Character( 'J' );
char c = C.charValue();
String s = C.toString();
l) Programa para ilustrar la clase carcter:
import java.io.*;
public class prog7 {
public static void main(String[] args) throws IOException
{ InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader e = new BufferedReader(isr);
char op,c1,c2;
Character C;
System.out.println ("************************");
System.out.println ("** Clase Character **\n");
System.out.print("ingrese un caracter: ");
op= (char)System.in.read();
System.out.println ("Es mayuscula? " +
Character.isLowerCase(op));
System.out.println ("Es minuscula? " +
Character.isUpperCase(op));
c1 = Character.toLowerCase( op );
c2 = Character.toUpperCase( op );
System.out.println ("en minuscula: " + c1);
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 21
System.out.println ("en mayuscula: " + c2);
int i = Character.digit( op,16 );
System.out.println ("en dec. (A-F): " + i);
C = new Character( op );
System.out.println ("como objeto: " + C);
// escribir C. para ver las fx asociadas a este objeto...
}
}
VII.- LA CLASE Float
Cada tipo numrico tiene su propia clase de objetos. As el tipofloat tiene el objeto
Float. De la misma forma que con la clase Character, se han codificado muchas
funciones tiles dentro de los mtodos de la claseFloat.
g) Declaraciones:La primera sentencia crear una variable float y la
segunda un objeto Float:
float f;
Float F;
h) Valores de Float
Float.POSITIVE_INFINITY
Float.NEGATIVE_INFINITY
Float.NaN
Float.MAX_VALUE
Float.MIN_VALUE
i) Conversiones de Clase/Cadena
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 22
String s = Float.toString( f );
f = Float.valueOf( "3.14" );
j) Comprobaciones
boolean b = Float.isNaN( f );
boolean b = Float.isInfinite( f );
La funcinisNaN() comprueba si f es unNo-Nmero. Un ejemplo de no-nmero es
raiz cuadrada de -2.
k) Conversiones de Objetos
Float F = new Float( Float.PI );
String s = F.toString();
int i = F.intValue();
long l = F.longValue();
float F = F.floatValue();
double d = F.doubleValue();
l) Otros Mtodos
int i = F.hashCode();
boolean b = F.equals( Object obj );
int i = Float.floatToIntBits( f );
float f = Float.intBitsToFloat( i );
VIII.- LA CLASE Double
d) Declaraciones: La primera sentencia crear una variable double y la
segunda un objeto Double:
double d;
Double D;
e) Valores de Double
Double.POSITIVE_INFINITY
Double.NEGATIVE_INFINITY
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 23
Double.NaN
Double.MAX_VALUE
Double.MIN_VALUE
c) Mtodos de Double
D.isNaN();
Double.isNaN( d );
D.isInfinite();
Double.isInfinite( d );
boolean D.equals();
String D.toString();
int D.intValue();
long D.longValue();
float D.floatValue();
double D.doubleValue();
int i = D.hashCode();
Double V.valueOf( String s );
long l = Double.doubleToLongBits( d );
double d = Double.longBitsToDouble( l );
IX.- LA CLASE Integer
d) Declaraciones La primera sentencia crear una variable int y la segunda
un objeto Integer:
int i;
Integer I;
e) Valores de Integer
Integer.MIN_VALUE;
Integer.MAX_VALUE;
f) Mtodos de Integer
String Integer.toString( int i,int base );
String Integer.toString( int i );
int I.parseInt( String s,int base );
int I.parseInt( String s );
Integer Integer.valueOf( String s,int base );
Integer Integer.valueOf( String s );
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 24
int I.intValue();
long I.longValue();
float I.floatValue();
double I.doubleValue();
String I.toString();
int I.hashCode();
boolean I.equals( Object obj );
En los mtodostoString(), parseInt() yvalueOf() que no se especifica labase sobre
la que se trabaja, se asume que esbase 10.
X.- LA CLASE Long
d) Declaraciones La primera sentencia crear una variable long y la
segunda un objeto Long:
long l;
Long L;
e) Valores de Long
Long.MIN_VALUE;
Long.MAX_VALUE;
f) Mtodos de Long
String Long.toString( long l,int base );
String Long.toString( long l );
long L.parseLong( String s,int base );
long L.parseLong( String s );
Long Long.valueOf( String s,int base );
Long Long.valueOf( String s );
int L.intValue();
long L.longValue();
float L.floatValue();
double L.doubleValue();
String L.toString();
int L.hashCode();
boolean L.equals( Object obj );
En los mtodostoString(), parseInt() yvalueOf() que no se especifica labase sobre
la que se trabaja, se asume que esbase 10.
XI.- LA CLASE Boolean
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 25
d) Declaraciones La primera sentencia crear una variable boolean y la
segunda un objeto Boolean:
boolean b;
Boolean B;
e) Valores de Boolean
Boolean.TRUE;
Boolean.FALSE;
f) Mtodos de Boolean
boolean B.booleanValue();
String B.toString();
boolean B.equals( Object obj );
XII.- LA CLASE String
Java posee gran capacidad para el manejo de cadenas dentro de sus clasesString
yStringBuffer.
Un objeto String representa una cadena alfanumrica de un valor constante que no
puede ser cambiada despus de haber sido creada. Un objeto StringBuffer
representa una cadena cuyo tamao puede variar.
Los Strings son objetos constantes y por lo tanto muy baratos para el sistema. La
mayora de las funciones relacionadas con cadenas esperan valores String como
argumentos y devuelven valores String.
Hay que tener en cuenta que las funciones estticas no consumen memoria del
objeto, con lo cual es ms conveniente usar Character que char. No obstante, char
se usa, por ejemplo, para leer ficheros que estn escritos desde otro lenguaje.
Existen muchos constructores para crear nuevas cadenas:
String();
String( String str );
String( char val[] );
String( char val[],int offset,int count );
String( byte val[],int hibyte );
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 26
String( byte val[],int hibyte,int offset,int count );
Tal como uno puede imaginarse, las cadenas pueden ser muy complejas,
existiendo muchas funciones muy tiles para trabajar con ellas y, afortunadamente,
la mayora estn codificadas en la claseString.
e) Funciones Bsicas La primera devuelve la longitud de la cadena y la
segunda devuelve el carcter que se encuentra en la posicin que se
indica en indice:
int length();
char charAt( int indice );
f) Funciones de Comparacin de Strings
boolean equals( Object obj );
boolean equalsIgnoreCase( Object obj );
Lo mismo queequals() pero no tiene en cuenta maysculas o minsculas.
int compareTo( String str2 );
Devuelve un entero menor que cero si la cadena es lxicamente menor que str2.
Devuelve cero si las dos cadenas son lxicamente iguales y un entero mayor que
cero si la cadena es lxicamente mayor que str2.
g) Funciones de Comparacin de Subcadenas
boolean regionMatch( int thisoffset,String s2,int s2offset,int len );
boolean regionMatch( boolean ignoreCase,int thisoffset,String s2, int s2offset,int 1 );
Comprueba si una regin de esta cadena es igual a una regin de otra cadena.
boolean startsWith( String prefix );
boolean startsWith( String prefix,int offset );
boolean endsWith( String suffix );
Devuelve si esta cadena comienza o termina con un cierto prefijo o sufijo
comenzando en un determinado desplazamiento.
int indexOf( int ch );
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 27
int indexOf( int ch,int fromindex );
int lastIndexOf( int ch );
int lastIndexOf( int ch,int fromindex );
int indexOf( String str );
int indexOf( String str,int fromindex );
int lastIndexOf( String str );
int lastIndexOf( String str,int fromindex );
Devuelve el primer/ltimo ndice de un carcter/cadena empezando la bsqueda a
partir de un determinado desplazamiento.
String substring( int beginindex );
String substring( int beginindex,int endindex );
String concat( String str );
String replace( char oldchar,char newchar );
String toLowerCase();
String toUpperCase();
String trim();
Ajusta los espacios en blanco al comienzo y al final de la cadena.
void getChars( int srcBegin,int srcEnd,char dst[],int dstBegin );
void getBytes( int srcBegin,int srcEnd,byte dst[],int dstBegin );
String toString();
char toCharArray();
int hashCode();
h) Funciones ValueOf
La claseString posee numerosas funciones para transformar valores de otros tipos
de datos a su representacin como cadena. Todas estas funciones tienen el
nombre devalueOf, estando el mtodo sobrecargado para todos los tipos de datos
bsicos.
Veamos un ejemplo de su utilizacin:
String Uno = new String( "Hola Mundo" );
float f = 3.141592;
String PI = Uno.valueOf( f );
String PI = String.valueOf( f ); // Mucho ms correcto
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 28
Funciones de Conversin
String valueOf( boolean b );
String valueOf( int i );
String valueOf( long l );
String valueOf( float f );
String valueOf( double d );
String valueOf( Object obj );
String valueOf( char data[] );
String valueOf( char data[],int offset,int count );
Usa arrays de caracteres para la cadena.
String copyValueOf( char data[] );
String copyValueOf( char data[],int offset,int count );
Crea un nuevo array equivalente para la cadena.
XII.- LA CLASE StringBuffer
Java posee gran capacidad para el manejo de cadenas dentro de sus clasesString
y StringBuffer. Un objeto String representa una cadena alfanumrica de un valor
constante que no puede ser cambiada despus de haber sido creada. Un objeto
StringBuffer representa una cadena cuyo tamao puede variar.
La clase StringBuffer dispone de muchos mtodos para modificar el contenido de
los objetos StringBuffer. Si el contenido de una cadena va a ser modificado en un
programa, habr que sacrificar el uso de objetos String en beneficio de StringBuffer,
que aunque consumen ms recursos del sistema, permiten ese tipo de
manipulaciones.
Al estar la mayora de las caractersticas de los StringBuffers basadas en su
tamao variable, se necesita un nuevo mtodo de creacin:
StringBuffer();
StringBuffer( int len );
StringBuffer( String str );
Se puede crear un StringBuffer vaco de cualquier longitud y tambin se puede
utilizar un String como punto de partida para un StringBuffer.
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 29
StringBuffer Dos = new StringBuffer( 20 );
StringBuffer Uno = new StringBuffer( "Hola Mundo" );
d) Cambio de Tamao
El cambio de tamao de un StringBuffer necesita varias funciones especficas para
manipular el tamao de las cadenas:
int length();
char charAt( int index );
void getChars( int srcBegin,int srcEnd,char dst[],int dstBegin );
String toString();
void setLength( int newlength );
void setCharAt( int index,char ch );
int capacity();
void ensureCapacity( int minimum );
void copyWhenShared();
Obervar que una de las funciones devuelve una cadena constante normal de tipo
String. Este objeto se puede usar con cualquier funcin String, como por ejemplo,
en las funciones de comparacin.
e) Modificacin del Contenido
Para cambiar el contenido de un StringBuffer, se pueden utilizar dos mtodos:
append() einsert().
En el ejemplo vemos el uso de estos dos mtodos:
class CadAppend {
public static void main( String args[] ) {
StringBuffer str = new StringBuffer( "Hola" );
str.append( " Mundo" );
System.out.println( str );
}
}
En este otro ejemplo, mostramos un mtodo muy simple que le da la vuelta a una
cadena:
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 30
class CadInversa {
public static String cadenaInversa( String fuente ) {
int longitud = fuente.length();
StringBuffer destino = new StringBuffer( longitud );
for( int i=(longitud-1); i >= 0; i-- )
destino.append( fuente.charAt( i ) );
return( destino.toString() );
}
public static void main( String args[] ) {
System.out.println( cadenaInversa( "Hola Mundo" ) );
}
}
Las funciones que cambian el tamao son pues:
StringBuffer append( Object obj );
StringBuffer append( String str );
StringBuffer append( char str[] );
StringBuffer append( char str[],int offset,int len );
StringBuffer append( boolean b );
StringBuffer append( int i );
StringBuffer append( long l );
StringBuffer append( float f );
StringBuffer append( double d );
StringBuffer append( char ch );
StringBuffer insert( int offset,Object obj );
StringBuffer insert( int offset,String str );
StringBuffer insert( int offset,char str[] );
StringBuffer insert( int offset,boolean b );
StringBuffer insert( int offset,int i );
StringBuffer insert( int offset,long l );
StringBuffer insert( int offset,float f );
StringBuffer insert( int offset,double d );
StringBuffer insert( int offset,char ch );
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 31
f) Operadores de Concatenacin
Hay que recordar que los operadores "+" y "+=" tambin se pueden aplicar a
cadenas. Ambos realizan una concatenacin y estn implementados con objetos
StringBuffer.
Por ejemplo, la sentencia:
String s = "Qu" + " tal ?";
es interpretada por el compilador como:
String s = new StringBuffer().append( "Qu" ).append( " tal ?" ).toString();
y se marcara el StringBuffer para borrarlo ya que el contenido pasa al objeto String.
Tambin, la sentencia:
s += " por ah!";
sera interpretada por el sistema como:
String s = new StringBuffer().append( s ).append( " por ah!" ).toString();
y volvera a marcar para borrar el nuevo StringBuffer.
XIII.- CONTROL DE FLUJ O
Muchas de las sentencias de control del flujo del programa se han tomado del C:
c) Sentencias de Salto
if/else
if( Boolean ) {
sentencias;
}
else {
sentencias;
}
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 32
switch
switch( expr1 ) {
case expr2:
sentencias;
break;
case expr3:
sentencias;
break;
default:
sentencias;
break;
}
d) Sentencias de Bucle
Bucles for
for( expr1 inicio; expr2 test; expr3 incremento ) {
sentencias;
}
Tambin se soporta el operador coma (,) en los bucles for
for( a=0,b=0; a < 7; a++,b+=2 )
Bucles while
while( Boolean ) {
sentencias;
}
Bucles do/while
do {
sentencias;
}while(Boolean);
Control General del Flujo
break [etiqueta]
continue [etiqueta]
return expr;
etiqueta: sentencia;
En caso de que nos encontremos con bucles anidados, se permite el uso de
etiquetas para poder salirse de ellos, por ejemplo:
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 33
uno: for( )
{
dos: for( )
{
continue; // seguira en el bucle interno
continue uno; // seguira en el bucle principal
break uno; // se saldra del bucle principal
}
}
En el cdigo de una funcin siempre hay que ser consecuentes con la declaracin
que se haya hecho de ella. Por ejemplo, si se declara una funcin para que
devuelva un entero, es imprescindible que se coloque un return final para salir de
esa funcin, independientemente de que haya otros en medio del cdigo que
tambin provoquen la salida de la funcin. En caso de no hacerlo se generar un
Warning, y el cdigo Java no se puede compilar con Warnings.
int func()
{
if( a == 0 )
return 1;
return 0; // es imprescindible porque se retorna un entero
}
XIV.- EJEMPLOS DE PROGRAMAS UTILIZANDO CONTROL DE FLUJO
g) Programa para crear la tabla de multiplicar de un nmero
import java.io.*;
public class tabla
{ public static void main(String[] args) throws IOException
{ InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader e=new BufferedReader(isr);
int a,x;
String salida;
System.out.println("\n *********** tabla *********** \n");
System.out.print(" Ingrse numero: "); a=Integer.parseInt(e.readLine());
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 34
System.out.print("\n");
for (x=1;x<=12;x++)
{ salida= " " + a + " * " + x + " = " + (x*a);
System.out.println(salida);
}
System.out.println("\n");
}
}
h) Programa para determinar si un nmero es primo o no
import java.io.*;
public class primo
{ public static void main(String[] args) throws IOException
{ InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader e=new BufferedReader(isr);
int x,d,a,r;
System.out.println("\n *********** Primo *********** \n");
System.out.print(" Ingrse numero: "); a=Integer.parseInt(e.readLine());
d=0;
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 35
for (x=1;x<=a;x++)
{
r= a % x;
if (r==0)
{
d++;
}
}
if (d>=3)
{ System.out.print(" El numero NO es primo "); }
else
{ System.out.print(" El numero SI es primo "); }
System.out.println("\n");
}
}
i) Programa que imprime una serie de n nmeros primos
import java.io.*;
public class serieprimo
{ public static void main(String[] args) throws IOException
{ InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader e=new BufferedReader(isr);
int x,n,a,aux,d;
System.out.println("\n****** NUEMROS PRIMOS ****** \n");
System.out.print("\nCuantos primos: "); x=Integer.parseInt(e.readLine());
System.out.println("\n");
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 36
n = 1;
a = 1;
do
{ d = 0;
for(aux=2;aux<a-1;aux++)
{ if (a % aux == 0) d++; }
if (d==0)
{
n++;
System.out.print(a + " ");
}
a++;
} while(n<=x);
System.out.print("\n");
System.out.print("\n");
} }
j) Programa que imprime los pares menores a un nmero
public class paresmenores
{ public static void main(String[] args) throws java.io.IOException{
int a;
System.out.println("\n****** Pares menores ********");
System.out.print("\nIngrese un numero entero positivo: ");
java.io.BufferedReader lectura = new java.io.BufferedReader(new
java.io.InputStreamReader(System.in));
a = Integer.parseInt(lectura.readLine());
System.out.println(" ");
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 37
if(a%2==0){
for(a-=2; a>=0; a-=2){
System.out.print(a + ", ");
} }
if(a%2==1){
a-=1;
for(a-=0; a>=0; a-=2){
System.out.print(a + ", ");
} }
System.out.println(" ");
}
}
k) Programa que dibuja un rbol de asteriscos
import java.io.*;
public class arbol
{ public static void main(String[] args) throws IOException
{ InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader e=new BufferedReader(isr);
int x,c,f,aux,aux1,aux2;
System.out.println("\n****** Arbol Inpar ****** \n");
System.out.print("\nCuantas filas: "); x=Integer.parseInt(e.readLine());
System.out.println("\n");
c = 1;
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 38
f=1;
do
{ for(aux1=1;aux1<=40-(c/2);aux1++)
{ System.out.print(" "); }
for(aux2=1;aux2<=c;aux2++)
{ System.out.print("*") ; }
System.out.print("\n");
c+=2;
f++;
}while(f<=x);
System.out.print("\n");
System.out.print("\n");
}
}
l) Programa a para convertir un numero decimal a binario
import java.io.*;
public class base2
{ public static void main(String[] args) throws IOException
{ InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader e=new BufferedReader(isr);
int x,d,a,r;
String n;
Antonio Poma
Jr. Ayacucho 263 Huancayo telfono: 201461 39
System.out.println("\n ****** Decimal a base 2 ****** \n");
System.out.print(" Ingrse numero: "); a=Integer.parseInt(e.readLine());
n = "";
x = a;
do
{ d = a % 2;
r = a / 2;
n = d + n;
a = r;
} while(r>=2);
n = a + n;
System.out.print(" El numero " + x + " en binario es " + n);
System.out.print("\n");
System.out.print("\n");
} }

S-ar putea să vă placă și