Documentos de Académico
Documentos de Profesional
Documentos de Cultura
HDSW C-III
Problema 1:
Crear una matriz de n * m filas (cargar n y m por teclado) Imprimir la matriz completa y la ltima fila.
Programa:
importjava.util.Scanner;
publicclassMatrizFC{
privateScannerteclado;
privateint[][]mat;
publicvoidcargar(){
teclado=newScanner(System.in);
System.out.print("Cuantasfilatienelamatriz:");
intfilas=teclado.nextInt();
System.out.print("Cuantascolumnastienelamatriz:");
intcolumnas=teclado.nextInt();
mat=newint[filas][columnas];
for(intf=0;f<mat.length;f++){
for(intc=0;c<mat[f].length;c++){
System.out.print("Ingresecomponente:");
mat[f][c]=teclado.nextInt();
}
}
}
publicvoidimprimir(){
for(intf=0;f<mat.length;f++){
for(intc=0;c<mat[f].length;c++){
System.out.print(mat[f][c]+"");
}
System.out.println();
}
}
publicvoidimprimirUltimaFila(){
System.out.println("Ultimafila");
for(intc=0;c<mat[mat.length1].length;c++){
System.out.print(mat[mat.length1][c]+"");
}
}
publicstaticvoidmain(String[]ar){
MatrizFCma=newMatrizFC();
ma.cargar();
ma.imprimir();
NCV20151HDSW
Computacin e Informtica
HDSW C-III
2
ma.imprimirUltimaFila();
}
}
En este ejemplo cada vez que se ejecute el programa el tamao de la matriz lo define el usuario, para ello
ingresamos por teclado dos enteros y seguidamente procedemos a crear la matriz con dichos valores:
System.out.print("Cuantas fila tiene la matriz:");
int filas=teclado.nextInt();
System.out.print("Cuantas columnas tiene la matriz:");
int columnas=teclado.nextInt();
mat=new int[filas][columnas];
Ahora las estructuras repetitivas las acotamos preguntando a la misma matriz la cantidad de filas y la
cantidad de elementos de cada fila(mat.length almacena la cantidad de filas de la matriz y mat[f].length
cuando f vale cero accedemos a la cantidad de elementos de la fila cero y as sucesivamente para cada
valor de f):
for(int f=0;f<mat.length;f++) {
for(int c=0;c<mat[f].length;c++) {
System.out.print("Ingrese componente:");
mat[f][c]=teclado.nextInt();
}
}
El algoritmo de impresin es idntico al visto anteriormente con la modificacin de las condiciones de los
for:
public void imprimir() {
for(int f=0;f<mat.length;f++) {
for(int c=0;c<mat[f].length;c++) {
System.out.print(mat[f][c]+" ");
}
System.out.println();
}
}
Para imprimir la ltima fila debemos disponer un valor fijo en el subndice de la fila (en este caso no
podemos disponer un nmero fijo sino preguntarle a la misma matriz la cantidad de filas y restarle uno ya
que las filas comienzan a numerarse a partir de cero: mat[mat.length-1][c])
Tambin la condicin del for debemos acceder al atributo length de la ltima fila mat[mat.length-1].length
for(int c=0;c<mat[mat.length-1].length;c++) {
System.out.print(mat[mat.length-1][c]+" ");
}
Problema 2:
Crear una matriz de n * m filas (cargar n y m por teclado) Imprimir el mayor elemento y la fila y columna
donde se almacena.
Programa:
importjava.util.Scanner;
publicclassMatrizFC{
privateScannerteclado;
privateint[][]mat;
publicvoidcargar(){
teclado=newScanner(System.in);
System.out.print("Cuantasfilatienelamatriz:");
intfilas=teclado.nextInt();
System.out.print("Cuantascolumnastienelamatriz:");
intcolumnas=teclado.nextInt();
mat=newint[filas][columnas];
for(intf=0;f<mat.length;f++){
for(intc=0;c<mat[f].length;c++){
System.out.print("Ingresecomponente:");
mat[f][c]=teclado.nextInt();
}
NCV20151HDSW
Computacin e Informtica
HDSW C-III
}
}
publicvoidimprimirMayor(){
intmayor=mat[0][0];
intfilamay=0;
intcolumnamay=0;
for(intf=0;f<mat.length;f++){
for(intc=0;c<mat[f].length;c++){
if(mat[f][c]>mayor){
mayor=mat[f][c];
filamay=f;
columnamay=c;
}
}
}
System.out.println("Elelementomayores:"+mayor);
System.out.println("Seencuentraenlafila:"+filamay+"yenla
columna:"+columnamay);
publicstaticvoidmain(String[]ar){
MatrizFCma=newMatrizFC();
ma.cargar();
ma.imprimirMayor();
}
}
Para obtener el mayor elemento de la matriz y la fila y columna donde se ubica debemos inicializar una
variable mayor con el elemento de la fila cero y columna cero (esto lo hacemos suponiendo que en dicha
posicin se almacena el mayor):
int mayor=mat[0][0];
int filamay=0;
int columnamay=0;
Luego mediante dos for recorremos todos los elementos de la matriz y cada vez que encontramos un
elemento mayor al actual procedemos a actualizar la variable mayor y la posicin donde se almacena:
for(int f=0;f<mat.length;f++) {
for(int c=0;c<mat[f].length;c++) {
if (mat[f][c]>mayor) {
mayor=mat[f][c];
filamay=f;
columnamay=c;
}
}
}
Problemas Resueltos
1.
Crear una matriz de n * m filas (cargar n y m por teclado) Intercambiar la primer fila con la
segundo. Imprimir luego la matriz.
importjava.util.Scanner;
publicclassMatrizFC{
privateScannerteclado;
privateint[][]mat;
publicvoidcargar(){
teclado=newScanner(System.in);
System.out.print("Cuantasfilatienelamatriz:");
intfilas=teclado.nextInt();
System.out.print("Cuantascolumnastienelamatriz:");
intcolumnas=teclado.nextInt();
NCV20151HDSW
Computacin e Informtica
HDSW C-III
4
mat=newint[filas][columnas];
for(intf=0;f<mat.length;f++){
for(intc=0;c<mat[f].length;c++){
System.out.print("Ingresecomponente:");
mat[f][c]=teclado.nextInt();
}
}
}
publicvoidintercambiar(){
for(intc=0;c<mat[0].length;c++){
intaux=mat[0][c];
mat[0][c]=mat[1][c];
mat[1][c]=aux;
}
}
publicvoidimprimir(){
for(intf=0;f<mat.length;f++){
for(intc=0;c<mat[f].length;c++){
System.out.print(mat[f][c]+"");
}
System.out.println();
}
}
publicstaticvoidmain(String[]ar){
MatrizFCma=newMatrizFC();
ma.cargar();
ma.intercambiar();
ma.imprimir();
}
}
2.
Crear una matriz de n * m filas (cargar n y m por teclado) Imprimir los cuatro valores que se
encuentran en los vrtices de la misma (mat[0][0] etc.)
importjava.util.Scanner;
publicclassMatrizFC{
privateScannerteclado;
privateint[][]mat;
publicvoidcargar(){
teclado=newScanner(System.in);
System.out.print("Cuantasfilatienelamatriz:");
intfilas=teclado.nextInt();
System.out.print("Cuantascolumnastienelamatriz:");
intcolumnas=teclado.nextInt();
mat=newint[filas][columnas];
for(intf=0;f<mat.length;f++){
for(intc=0;c<mat[f].length;c++){
System.out.print("Ingresecomponente:");
mat[f][c]=teclado.nextInt();
}
}
NCV20151HDSW
Computacin e Informtica
HDSW C-III
publicvoidimprimirVertices(){
System.out.println("Vrticesuperiorizquierdo:");
System.out.println(mat[0][0]);
System.out.println("Vrticesuperiorderecho:");
System.out.println(mat[0][mat[0].length1]);
System.out.println("Vrticeinferiorizquierdo:");
System.out.println(mat[mat.length1][0]);
System.out.println("Vrticeinferiorderecho:");
System.out.println(mat[mat.length1][mat[mat.length1].length1]);
publicstaticvoidmain(String[]ar){
MatrizFCma=newMatrizFC();
ma.cargar();
ma.imprimirVertices();
}
}
Nombres de 4 empleados.
Ingresos en concepto de sueldo, cobrado por cada empleado, en los ltimos 3 meses.
b) Generar un vector que contenga el ingreso acumulado en sueldos en los ltimos 3 meses para
cada empleado.
c) Mostrar por pantalla el total pagado en sueldos a todos los empleados en los ltimos 3 meses
NCV20151HDSW
Computacin e Informtica
HDSW C-III
6
Programa:
importjava.util.Scanner;
publicclassMatriz9{
privateScannerteclado;
privateString[]empleados;
privateint[][]sueldos;
privateint[]sueldostot;
publicvoidcargar(){
teclado=newScanner(System.in);
empleados=newString[4];
sueldos=newint[4][3];
for(intf=0;f<empleados.length;f++){
System.out.print("Ingreseelnombredelempleado:");
empleados[f]=teclado.next();
for(intc=0;c<sueldos[f].length;c++){
System.out.print("Ingresesueldo:");
sueldos[f][c]=teclado.nextInt();
}
}
}
publicvoidcalcularSumaSueldos(){
sueldostot=newint[4];
for(intf=0;f<sueldos.length;f++){
intsuma=0;
for(intc=0;c<sueldos[f].length;c++){
suma=suma+sueldos[f][c];
}
sueldostot[f]=suma;
}
}
publicvoidimprimirTotalPagado(){
System.out.println("Totaldesueldospagadosporempleado.");
for(intf=0;f<sueldostot.length;f++){
System.out.println(empleados[f]+""+sueldostot[f]);
}
}
publicvoidempleadoMayorSueldo(){
intmay=sueldostot[0];
Stringnom=empleados[0];
for(intf=0;f<sueldostot.length;f++){
if(sueldostot[f]>may){
NCV20151HDSW
Computacin e Informtica
HDSW C-III
may=sueldostot[f];
nom=empleados[f];
}
}
System.out.println("Elempleadoconmayorsueldoes"+nom+
"quetieneunsueldode"+may);
}
publicstaticvoidmain(String[]ar){
Matriz9ma=newMatriz9();
ma.cargar();
ma.calcularSumaSueldos();
ma.imprimirTotalPagado();
ma.empleadoMayorSueldo();
}
}
Para resolver este problema lo primero que hacemos es definir una matriz donde se almacenarn los
sueldos mensuales de cada empleado, un vector de tipo String donde almacenaremos los nombre de
cada empleado y finalmente definimos un vector paralelo a la matriz donde almacenaremos la suma de
cada fila de la matriz:
private String[] empleados;
private int[][] sueldos;
private int[] sueldostot;
En el mtodo de cargar inicializamos el vector con los nombres de los empleados y la matriz paralela
donde se almacenan los ltimos tres sueldos (previo a cargar procedemos a crear el vector y la matriz):
empleados=new String[4];
sueldos=new int[4][3];
for(int f=0;f<empleados.length;f++){
System.out.print("Ingrese el nombre del empleado:");
empleados[f]=teclado.next();
for(int c=0;c<sueldos[f].length;c++) {
System.out.print("Ingrese sueldo:");
sueldos[f][c]=teclado.nextInt();
}
}
El mtodo sumar sueldos crea el vector donde se almacenar la suma de cada fila de la matriz. Mediante
dos for recorremos toda la matriz y sumamos cada fila:
sueldostot=new int[4];
for(int f=0;f<sueldos.length;f++) {
int suma=0;
for(int c=0;c<sueldos[f].length;c++) {
suma=suma+sueldos[f][c];
}
sueldostot[f]=suma;
}
El mtodo imprimirTotalPagado tiene por objetivo mostrar los dos vectores (el de nombre de los
empleados y el que almacena la suma de cada fila de la matriz):
for(int f=0;f<sueldostot.length;f++) {
System.out.println(empleados[f]+" - "+sueldostot[f]);
}
NCV20151HDSW
Computacin e Informtica
HDSW C-III
Por ltimo para obtener el nombre del empleado con mayor sueldo acumulado debemos inicializar dos
variables auxiliares con el primer elemento del vector de empleados y en otra auxiliar guardamos la primer
componente del vector sueldostot:
int may=sueldostot[0];
String nom=empleados[0];
for(int f=0;f<sueldostot.length;f++) {
if (sueldostot[f]>may) {
may=sueldostot[f];
nom=empleados[f];
}
}
System.out.println("El empleado con mayor sueldo es "+ nom + " que tiene
un sueldo de "+may);
Problema Resuelto
1.
Se desea saber la temperatura media trimestral de cuatro paises. Para ello se tiene como dato
las temperaturas medias mensuales de dichos paises.
Se debe ingresar el nombre del pas y seguidamente las tres temperaturas medias mensuales.
Seleccionar las estructuras de datos adecuadas para el almacenamiento de los datos en
memoria.
a - Cargar por teclado los nombres de los paises y las temperaturas medias mensuales.
b - Imprimir los nombres de las paises y las temperaturas medias mensuales de las mismas.
c - Calcular la temperatura media trimestral de cada pas.
c - Imprimr los nombres de las provincias y las temperaturas medias trimestrales.
d - Imprimir el nombre de la provincia con la temperatura media trimestral mayor.
2. importjava.util.Scanner;
3. publicclassMatriz10{
4. privateScannerteclado;
5. privateString[]paises;
6. privateint[][]tempmen;
7. privateint[]temptri;
8.
9. publicvoidcargar(){
10. teclado=newScanner(System.in);
11. paises=newString[4];
12. tempmen=newint[4][3];
13. for(intf=0;f<paises.length;f++){
14. System.out.print("Ingreseelnombredelpas:");
15. paises[f]=teclado.next();
16. for(intc=0;c<tempmen[f].length;c++){
17. System.out.print("Ingresetemperatura
mensual:");
18. tempmen[f][c]=teclado.nextInt();
19. }
20. }
21. }
22.
23. publicvoidimprimirTempMensuales(){
24. for(intf=0;f<paises.length;f++){
25.
System.out.print("Pais:"+paises[f]+":");
26. for(intc=0;c<tempmen[f].length;c++){
27. System.out.print(tempmen[f][c]+"");
28. }
29. System.out.println();
30. }
31. }
32.
NCV20151HDSW
Computacin e Informtica
HDSW C-III
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
publicvoidcalcularTemperaturaTri(){
temptri=newint[4];
for(intf=0;f<tempmen.length;f++){
intsuma=0;
for(intc=0;c<tempmen[f].length;c++){
suma=suma+tempmen[f][c];
}
temptri[f]=suma/3;
}
}
publicvoidimprimirTempTrimestrales(){
System.out.println("Temperaturastrimestrales.");
for(intf=0;f<paises.length;f++){
System.out.println(paises[f]+""+temptri[f]);
}
}
publicvoidpaisMayorTemperaturaTri(){
intmay=temptri[0];
Stringnom=paises[0];
for(intf=0;f<paises.length;f++){
if(temptri[f]>may){
may=temptri[f];
nom=paises[f];
}
}
60. System.out.println("Paiscontemperaturatrimestralmayores"+
nom+"quetieneunatemperaturade"+may);
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
publicstaticvoidmain(String[]ar){
Matriz10ma=newMatriz10();
ma.cargar();
ma.imprimirTempMensuales();
ma.calcularTemperaturaTri();
ma.imprimirTempTrimestrales();
ma.paisMayorTemperaturaTri();
}
}
Constructor de la clase
En Java podemos definir un mtodo que se ejecute inicialmente y en forma automtica. Este mtodo se lo
llama constructor.
El constructor tiene las siguientes caractersticas:
NCV20151HDSW
Computacin e Informtica
HDSW C-III
10
Problema 1:
Se desea guardar los sueldos de 5 operarios en un vector. Realizar la creacin y carga del vector en el
constructor.
Programa:
importjava.util.Scanner;
publicclassOperarios{
privateScannerteclado;
privateint[]sueldos;
publicOperarios()
{
teclado=newScanner(System.in);
sueldos=newint[5];
for(intf=0;f<5;f++){
System.out.print("Ingresevalordelacomponente:");
sueldos[f]=teclado.nextInt();
}
}
publicvoidimprimir(){
for(intf=0;f<5;f++){
System.out.println(sueldos[f]);
}
}
publicstaticvoidmain(String[]ar){
Operariosop=newOperarios();
op.imprimir();
}
}
Como podemos ver es el mismo problema que resolvimos cuando vimos vectores. La diferencia es que
hemos sustituido el mtodo cargar con el constructor:
public Operarios()
{
teclado=new Scanner(System.in);
sueldos=new int[5];
for(int f=0;f<5;f++) {
System.out.print("Ingrese valor de la componente:");
sueldos[f]=teclado.nextInt();
}
}
Como la clase se llama Operarios el constructor tiene el mismo nombre, no disponemos la palabra clave
void ya que el constructor no puede retornar datos.
La ventaja de plantear un constructor en lugar de definir un mtodo con cualquier nombre es que se
llamar en forma automtica cuando se crea un objeto de esta clase:
public static void main(String[] ar) {
Operarios op=new Operarios();
Cuando se crea el objeto op se llama al mtodo constructor.
Finalmente llamamos al mtodo imprimir:
op.imprimir();
Problema 2:
NCV20151HDSW
Computacin e Informtica
HDSW C-III
Plantear una clase llamada Alumno y definir como atributos su nombre y su edad. En el constructor
realizar la carga de datos. Definir otros dos mtodos para imprimir los datos ingresados y un mensaje si
es mayor o no de edad (edad >=18)
Programa:
importjava.util.Scanner;
publicclassAlumno{
privateScannerteclado;
privateStringnombre;
privateintedad;
publicAlumno(){
teclado=newScanner(System.in);
System.out.print("Ingresenombre:");
nombre=teclado.next();
System.out.print("Ingreseedad:");
edad=teclado.nextInt();
}
publicvoidimprimir(){
System.out.println("Nombre:"+nombre);
System.out.println("Edad:"+edad);
}
publicvoidesMayorEdad(){
if(edad>=18){
System.out.print(nombre+"esmayordeedad.");
}else{
System.out.print(nombre+"noesmayordeedad.");
}
}
publicstaticvoidmain(String[]ar){
Alumnoalumno1=newAlumno();
alumno1.imprimir();
alumno1.esMayorEdad();
}
}
Declaramos la clase Persona, sus tres atributos y definimos el constructor con el mismo nombre de la
clase:
public class Alumno {
private Scanner teclado;
private String nombre;
private int edad;
public Alumno() {
teclado=new Scanner(System.in);
System.out.print("Ingrese nombre:");
nombre=teclado.next();
System.out.print("Ingrese edad:");
edad=teclado.nextInt();
}
En la main el constructor se llama en forma automtica cuando creamos un objeto de la clase Alumno:
public static void main(String[] ar) {
Alumno alumno1=new Alumno();
Los otros dos mtodos deben llamarse por su nombre y en el orden que necesitemos:
alumno1.imprimir();
alumno1.esMayorEdad();
Problemas propuestos
NCV20151HDSW
11
Computacin e Informtica
1.
HDSW C-III
Confeccionar una clase que represente un empleado. Definir como atributos su nombre y su
sueldo. En el constructor cargar los atributos y luego en otro mtodo imprimir sus datos y por
ltimo uno que imprima un mensaje si debe pagar impuestos (si el sueldo supera a 3000).
2. importjava.util.Scanner;
3. publicclassEmpleadoFabrica{
4. privateScannerteclado;
5. Stringnombre;
6. floatsueldo;
7.
8. publicEmpleadoFabrica(){
9. teclado=newScanner(System.in);
10. System.out.print("Ingreseelnombredelempleado:");
11. nombre=teclado.next();
12. System.out.print("Ingresesusueldo:");
13. sueldo=teclado.nextFloat();
14. }
15.
16. publicvoidpagaImpuestos(){
17. if(sueldo>3000){
18. System.out.print("Debeabonarimpuestos");
19. }else{
20. System.out.print("Nopagaimpuestos");
21. }
22. }
23.
24. publicstaticvoidmain(String[]ar){
25. EmpleadoFabricaempleado1;
26. empleado1=newEmpleadoFabrica();
27. empleado1.pagaImpuestos();
28. }
29. }
30. Implementar la clase operaciones. Se deben cargar dos valores enteros en el constructor,
calcular su suma, resta, multiplicacin y divisin, cada una en un mtodo, imprimir dichos
resultados.
importjava.util.Scanner;
publicclassOperacionesCalculo{
privateScannerteclado;
intvalor1,valor2;
publicOperacionesCalculo(){
teclado=newScanner(System.in);
System.out.print("Ingreseprimervalor:");
valor1=teclado.nextInt();
System.out.print("Ingresesegundovalor:");
valor2=teclado.nextInt();
}
publicvoidsumar(){
NCV20151HDSW
12
Computacin e Informtica
HDSW C-III
intsuma;
suma=valor1+valor2;
System.out.println("Lasumaes:"+suma);
}
publicvoidrestar(){
intresta;
resta=valor1valor2;
System.out.println("Larestaes:"+resta);
}
publicvoidmultiplicar(){
intmultiplicacion;
multiplicacion=valor1*valor2;
System.out.println("Lamultiplicacines:"+multiplicacion);
}
publicvoiddividir(){
intdivision;
division=valor1/valor2;
System.out.println("Ladivisines:"+division);
}
publicstaticvoidmain(String[]ar){
OperacionesCalculoopera=newOperacionesCalculo();
opera.sumar();
opera.restar();
opera.multiplicar();
opera.dividir();
}
}
Clase String
La clase String est orientada a manejar cadenas de caracteres. Hasta este momento hemos utilizado
algunos mtodos de la clase String (equals, compareTo)
Ahora veremos otro conjunto de mtodos de uso comn de la clase String:
Mtodos
boolean equals(String s1)
Como vimos el mtodo equals retorna true si el contenido de caracteres del parmetro s1 es
exactamente igual a la cadena de caracteres del objeto que llama al mtodo equals.
boolean equalsIgnoreCase(String s1)
El funcionamiento es casi exactamente igual que el mtodo equals con la diferencia que no tiene
en cuenta maysculas y minsculas (si comparamos 'Ana' y 'ana' luego el mtodo
equalsIgnoreCase retorna true)
int compareTo(String s1)
NCV20151HDSW
13
Computacin e Informtica
HDSW C-III
Retorna un caracter del String, llega al mtodo la posicin del caracter a extraer.
int length()
Retorna un substring a partir de la posicin indicada en el parmetro pos1 hasta la posicin pos2
sin incluir dicha posicin.
int indexOf(String s1)
Retorna -1 si el String que le pasamos como parmetro no est contenida en la cadena del
objeto que llama al mtodo. En caso que se encuentre contenido el String s1 retorna la posicin
donde comienza a repetirse.
String toUpperCase()
Problema 1:
Confeccionar una clase que solicite el ingreso de dos String y luego emplee los mtodos ms comunes de
la clase String.
Programa:
importjava.util.Scanner;
publicclassCadena1{
publicstaticvoidmain(String[]ar){
Scannerteclado=newScanner(System.in);
Stringcad1;
Stringcad2;
System.out.print("Ingreselaprimercadena:");
cad1=teclado.nextLine();
System.out.print("Ingreselasegundacadena:");
cad2=teclado.nextLine();
if(cad1.equals(cad2)==true){
System.out.println(cad1+"esexactamenteiguala"+cad2);
}else{
System.out.println(cad1+"noesexactamenteiguala"+cad2);
}
if(cad1.equalsIgnoreCase(cad2)==true){
System.out.println(cad1+"esiguala"+cad2+"sinteneren
cuentamaysculas/minsculas");
}else{
NCV20151HDSW
14
Computacin e Informtica
HDSW C-III
System.out.println(cad1+"noesiguala"+cad2+"sinteneren
cuentamaysculas/minsculas");
}
if(cad1.compareTo(cad2)==0){
System.out.println(cad1+"esexactamenteiguala"+cad2);
}else{
if(cad1.compareTo(cad2)>0){
System.out.println(cad1+"esmayoralfabticamenteque
"+cad2);
}else{
System.out.println(cad2+"esmayoralfabticamenteque
"+cad1);
}
}
charcarac1=cad1.charAt(0);
System.out.println("Elprimercaracterde"+cad1+"es"+carac1);
intlargo=cad1.length();
System.out.println("EllargodelString"+cad1+"es"+largo);
Stringcad3=cad1.substring(0,3);
System.out.println("Losprimerostrescaracteresde"+cad1+"son
"+cad3);
intposi=cad1.indexOf(cad2);
if(posi==1){
System.out.println(cad2+"noestcontenidoen"+cad1);
}else{
System.out.println(cad2+"estcontenidoen"+cad1+"apartirde
laposicin"+posi);
}
System.out.println(cad1+"convertidoamaysculases
"+cad1.toUpperCase());
System.out.println(cad1+"convertidoaminsculases
"+cad1.toLowerCase());
}
}
Para cargar los dos String utilizamos en este caso el mtodo nextLine para permitir ingresar espacios en
blanco:
System.out.print("Ingrese la primer cadena:");
cad1=teclado.nextLine();
System.out.print("Ingrese la segunda cadena:");
cad2=teclado.nextLine();
Problemas Resueltos
1.
Realizar una clase, que permita cargar una direccin de mail en el constructor, luego en otro
mtodo mostrar un mensaje si contiene el caracter '@'.
importjava.util.Scanner;
publicclassCadena2{
privateScannerteclado;
privateStringmail;
publicCadena2(){
teclado=newScanner(System.in);
System.out.print("Ingreseunmail:");
mail=teclado.nextLine();
}
publicvoidverificarArroba(){
booleanexiste=false;
for(intf=0;f<mail.length();f++){
NCV20151HDSW
15
Computacin e Informtica
HDSW C-III
if(mail.charAt(f)=='@'){
existe=true;
}
}
if(existe==true){
System.out.println(mail+"contieneelcaracter@");
}else{
System.out.println(mail+"nocontieneelcaracter@");
}
}
publicstaticvoidmain(String[]ar){
Cadena2cad=newCadena2();
cad.verificarArroba();
}
}
1.
Cargar
un
String
por
teclado
e
implementar
los
siguientes
mtodos:
a) Imprimir la primera mitad de los caracteres de la cadena.
b) Imprimir el ltimo caracter.
c) Imprimirlo en forma inversa.
d) Imprimir cada caracter del String separado con un guin.
e) Imprimir la cantidad de vocales almacenadas.
f) Implementar un mtodo que verifique si la cadena se lee igual de izquierda a derecha tanto
como de derecha a izquierda (ej. neuquen se lee igual en las dos direcciones)
importjava.util.Scanner;
publicclassCadena3{
privateScannerteclado;
privateStringcad;
publicCadena3(){
teclado=newScanner(System.in);
System.out.print("Ingreseunacadena:");
cad=teclado.nextLine();
}
publicvoidprimerMitad(){
Stringparte;
parte=cad.substring(0,cad.length()/2);
System.out.println("Primermitaddecaraceres:"+parte);
}
publicvoidultimoCaracter(){
charultimo=cad.charAt(cad.length()1);
System.out.println("Ultimocaracter:"+ultimo);
}
publicvoidformaInversa(){
System.out.println("Impresinenformainversa:");
for(intf=cad.length()1;f>=0;f){
System.out.print(cad.charAt(f));
}
System.out.println();
}
publicvoidconGuion(){
System.out.println("Separadoporguiones:");
for(intf=0;f<cad.length();f++){
System.out.print(cad.charAt(f)+"");
}
System.out.println();
NCV20151HDSW
16
Computacin e Informtica
HDSW C-III
publicvoidcantidadVocales(){
intcant=0;
for(intf=0;f<cad.length();f++){
if(cad.charAt(f)=='a'||cad.charAt(f)=='e'||
cad.charAt(f)=='i'||cad.charAt(f)=='o'||
cad.charAt(f)=='u'||cad.charAt(f)=='A'||
cad.charAt(f)=='E'||cad.charAt(f)=='I'||
cad.charAt(f)=='O'||cad.charAt(f)=='U'){
cant++;
}
}
System.out.println("Cantidaddevocales:"+cant);
}
publicvoidesCapicua(){
intcant=0;
for(intf=0;f<cad.length()/2;f++){
if(cad.charAt(f)==cad.charAt(cad.length()1f)){
cant++;
}
}
if(cant==cad.length()/2){
System.out.println("Escapicalacadena"+cad);
}else{
System.out.println("Noescapicalacadena"+cad);
}
}
publicstaticvoidmain(String[]ar){
Cadena3cad=newCadena3();
cad.primerMitad();
cad.ultimoCaracter();
cad.formaInversa();
cad.conGuion();
cad.cantidadVocales();
cad.esCapicua();
}
}
2.
Desarrollar un programa que solicite la carga de una clave. La clase debe tener dos mtodos uno
para la carga y otro que muestre si la clave es la correcta (la clave a comparar es "123abc")
importjava.util.Scanner;
publicclassCadena4{
privateScannerteclado;
privateStringclave;
publicCadena4(){
teclado=newScanner(System.in);
System.out.print("Ingreseclave:");
clave=teclado.nextLine();
}
publicvoidverificarClave(){
if(clave.equals("123abc")==true){
NCV20151HDSW
17
Computacin e Informtica
HDSW C-III
System.out.println("Seingreslaclaveenforma
correcta");
}else{
System.out.println("Noseingreslaclaveenforma
correcta");
}
}
publicstaticvoidmain(String[]ar){
Cadena4cad=newCadena4();
cad.verificarClave();
}
}
3.
Confeccionar un programa que permita cargar los nombres de 5 personas y sus mail, luego
implementar los siguientes mtodos:
a) Mostrar por pantalla los datos.
b) Consulta del mail ingresando su nombre.
c) Mostrar los mail que no tienen el carcter @.
importjava.util.Scanner;
publicclassCadena5{
privateScannerteclado;
privateString[]nombres;
privateString[]mail;
publicCadena5(){
teclado=newScanner(System.in);
nombres=newString[5];
mail=newString[5];
for(intf=0;f<nombres.length;f++){
System.out.print("Ingresenombre:");
nombres[f]=teclado.nextLine();
System.out.print("Ingresemail");
mail[f]=teclado.nextLine();
}
}
publicvoidlistar(){
for(intf=0;f<nombres.length;f++){
System.out.println(nombres[f]+""+mail[f]);
}
}
publicvoidconsultaMail(){
Stringaux;
System.out.print("Ingreseelnombredelapersona:");
aux=teclado.nextLine();
booleanexiste=false;
for(intf=0;f<nombres.length;f++){
if(aux.equals(nombres[f])){
System.out.println("Maildelapersona:"+mail[f]);
existe=true;
}
}
if(existe==false){
System.out.println("Noexisteunapersonaconese
nombre.");
}
}
NCV20151HDSW
18
Computacin e Informtica
HDSW C-III
19
publicvoidsinArroba(){
for(intf=0;f<mail.length;f++){
booleantiene=false;
for(intk=0;k<mail[f].length();k++){
if(mail[f].charAt(k)=='@'){
tiene=true;
}
}
if(tiene==false){
System.out.println(mail[f]+"notiene@");
}
}
}
publicstaticvoidmain(String[]ar){
Cadena5cad=newCadena5();
cad.listar();
cad.consultaMail();
cad.sinArroba();
}
}
4.
Codifique un programa que permita cargar una oracin por teclado, luego mostrar cada palabra
ingresada en una lnea distinta.
Por ejemplo si cargo:
La maana est fra.
Debe aparecer:
La
maana
est
fra.
importjava.util.Scanner;
publicclassCadena6{
privateScannerteclado;
privateStringoracion;
publicCadena6(){
teclado=newScanner(System.in);
System.out.print("Ingreseoracin:");
oracion=teclado.nextLine();
}
publicvoidimprimir(){
for(intf=0;f<oracion.length();f++){
if(oracion.charAt(f)==''){
System.out.println();
}else{
System.out.print(oracion.charAt(f));
}
}
}
NCV20151HDSW
Computacin e Informtica
HDSW C-III
20
publicstaticvoidmain(String[]ar){
Cadena6cad=newCadena6();
cad.imprimir();
}
}
NCV20151HDSW