Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Juanfran.ib

Páginas: [1]
1
Dejo aquí mi solución a este ejercicio.

He usado la clase EntradaDeTeclado:
Código: [Seleccionar]

import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

// Definimos una clase EntradaDeTeclado

public class EntradaDeTeclado {

    private String entradaTeclado; //Variable de instancia (campo) de la clase


    public EntradaDeTeclado ()  { //Constructor

        entradaTeclado="";

        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método

    } //Cierre del constructor


    public void pedirEntrada ()  {  //Método de la clase         

        Scanner entradaEscaner = new Scanner (System.in);

        entradaTeclado = entradaEscaner.nextLine ();     } //Cierre del método pedirEntrada


    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada

    public String getPrimeraPalabra ()  {

        for (int i=0; i < entradaTeclado.length() - 1; i++) {

            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS

                return entradaTeclado.substring(0, i+1);         }

        }

        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya

    } //Cierre del método getPrimeraPalabra


    public int getLongitud ()  {  //Método de la clase

        return entradaTeclado.length();

    } //Cierre del método getLongitud

} //Cierre de la clase

El código de la clase ListaCantantesFamosos:
Código: [Seleccionar]
import java.util.ArrayList;

//Esta clase representa una lista de nombres manejada con la clase ArrayList de Java

public class ListaCantantesFamosos {
    private String nombreDeLaLista; //Establecemos un atributo nombre de la lista
    private ArrayList<String> listaDeCantantes; //Declaramos un ArrayList que contiene objetos String
 
    public ListaCantantesFamosos (String nombre){    //Constructor: crea una lista de nombres vacía
        String nombreDeLaLista = nombre;
        listaDeCantantes = new ArrayList<String>(); //Creamos el objeto de tipo ArrayList
        listaDeCantantes.add ("Julio Iglesias");
        listaDeCantantes.add ("Paco Ibáñez");
        listaDeCantantes.add ("Luis Guerra");

    } //Cierre del constructor

    public void addCantante (String nuevoCantante) { listaDeCantantes.add (nuevoCantante); } //Cierre del método


    public String getCantante (int posicion) { //Método

        if (posicion >= 0 && posicion < listaDeCantantes.size() ) {

            return listaDeCantantes.get(posicion); }

        else { return "No existe cantante para la posición solicitada";}

    } //Cierre del método 


    public int getTamaño () { return listaDeCantantes.size(); } //Cierre del método


    public void removeCantante (int posicion) {  //Método

        if (posicion >= 0 && posicion < listaDeCantantes.size() ) {

            listaDeCantantes.remove(posicion); }

        else { } //else vacío. No existe nombre para la posición solicitada, no se ejecuta ninguna instrucción

    } //Cierre del método removeNombre

} //Cierre de la clase

Y finalmente adjunto  el main

Código: [Seleccionar]
public class TestListaCantantesFamosos {

    public static void main (String [ ] args) {

        System.out.println ("Empezamos el programa");   

        System.out.println ("Por favor introduzca el nombre de un cantante famoso a añadir en la lista:");          EntradaDeTeclado entrada1 = new EntradaDeTeclado();

        System.out.println ("Por favor introduzca el nombre de otro cantante famoso a añadir a la lista:");         EntradaDeTeclado entrada2 = new EntradaDeTeclado();


        System.out.println ("Gracias, estos dos nombres de cantantes famosos se van a añadir a la lista de Cantantes Famosos");

        ListaCantantesFamosos lista1 = new ListaCantantesFamosos("Cantantes Famosos");

        lista1.addCantante (entrada1.getEntrada() );

        lista1.addCantante (entrada2.getEntrada() );
       
        System.out.println ("La lista ha quedado formada por " + lista1.getTamaño() + " elementos");
        int j = lista1.getTamaño();
        int i=0;
        while (j>0){System.out.println ("Elemento "+ (i+1) +" : " + lista1.getCantante(i) );
        i+=1;
        j-=1;
           
    }
    }

Gracias  por vuestros comentarios.

2
Hola, aquí mi propuesta de solución al ejercicio.

He usado la clase EntradaDeTeclado que habíamos creado en un ejercicio anterior. Aquí dejo el código de dicha clase:

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

// Definimos una clase EntradaDeTeclado

public class EntradaDeTeclado {

    private String entradaTeclado; //Variable de instancia (campo) de la clase


    public EntradaDeTeclado ()  { //Constructor

        entradaTeclado="";

        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método

    } //Cierre del constructor


    public void pedirEntrada ()  {  //Método de la clase         

        Scanner entradaEscaner = new Scanner (System.in);

        entradaTeclado = entradaEscaner.nextLine ();     } //Cierre del método pedirEntrada


    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada

    public String getPrimeraPalabra ()  {

        for (int i=0; i < entradaTeclado.length() - 1; i++) {

            if (entradaTeclado.substring (i, i+1).equals(" ") ) { //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }
        }

        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya

    } //Cierre del método getPrimeraPalabra


    public int getLongitud ()  {  //Método de la clase

        return entradaTeclado.length();

    } //Cierre del método getLongitud

} //Cierre de la clase

La clase ComparadorPalabras es la que realiza lo que se pide en el ejercicio,  soy consciente de que permite comparar palabras y también permite la entrada de frases, incluyendo espacios. Las compara hasta la longitud más larga de las dos cadenas introducidas. Si no es correcto puedo corregirlo para que la entrada que se permita sea sólo de palabras sin espacios :

Código: [Seleccionar]
import java.util.Scanner;
public class ComparadorPalabras {

    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa");     
        System.out.println ("Por favor introduzca la palabra 1:");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println ("Por favor introduzca la palabra 2:");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println ("Gracias");
        System.out.println ("La entrada 1 ha sido \"" + entrada1.getEntrada() + "\" y consta de " + entrada1.getLongitud () + " caracteres");
        System.out.println ("La entrada 2 ha sido \"" + entrada2.getEntrada() + "\" y consta de " + entrada2.getLongitud () + " caracteres");
        int i = 0;
        int longitud1 = entrada1.getLongitud () ;
        int longitud2 = entrada2.getLongitud () ;
        int longitud = longitud2;
        if (longitud1>longitud2){longitud = longitud1;
        }//con esto establecemos las veces que se repite el bucle for hasta  la longitud de la cadena más larga de las dos introducidas

        for (i=0; i<longitud;i++)
        {

            int j = i +1;
            String palabra1 =entrada1.getEntrada();
            String palabra2 =entrada2.getEntrada();
            String subcadena1 = "" ;
            String subcadena2 = "";

            if (i<longitud1) {subcadena1 = palabra1.substring(i,j);}
            if (i<longitud2) {subcadena2 = palabra2.substring(i,j);}
            System.out.println ("¿Letra "+ (i+1) + " igual en las dos palabras? "+ subcadena1.equals(subcadena2));
            if (i>=longitud1)
            {
                System.out.println ("La palabra 1 no tiene letra " + (i+1));
            }

            else if (i>=longitud2)
            {
                System.out.println ("La palabra 2 no tiene letra " + (i+1));
            }

            else {
                System.out.println ("La letra "+ (i+1)+" de la palabra 1 es " + subcadena1);
                System.out.println ("La letra "+ (i+1) +" de la palabra 2 es " + subcadena2);}
        }
    }
}

Gracias por vuestra atención.

3
Dejo mi propuesta para el ejercicio CU00659B del curso elemental de programación orientada a objetos con Java de aprenderaprogramar.

<<Crea una clase con un método main que pida una entrada de teclado y usando un bucle while, el método length de la clase String y el método substring de la clase String, muestre cada una de las letras que componen la entrada.>>

Código: [Seleccionar]
import java.util.Scanner;
public class BucleWhile
{
    // instance variables - replace the example below with your own
     public static void main (String [ ] args) {

        System.out.println ("Empezamos el programa");

        System.out.println ("Por favor introduzca una cadena por teclado:");

        String entradaTeclado = "";

        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner

        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
       
        int i = 0;

        while (i<entradaTeclado.length()) {
            System.out.println("Letra " + (i+1) + ": "+ entradaTeclado.substring(i, i+1));
            i++;}
   
    }
}

4
Mi solución para este ejercicio.

Se agradecen comentarios.

Hace lo que se pide pero no se si entiendo muy bien cómo funciona.
Código: [Seleccionar]
/**
 * ClaseMainFor
 * Pide entrada de teclado y usando un bucle for, el método length de la clase String,
 * y el método substring de la clase String,
 * muestra cada una de las letras que componen la entrada
 * @author (Juanfran.ib)
 * @version (22/07/2023)
 */
import java.util.Scanner;//Importación del código de la clase Scanner desde la biblioteca Java


public class ClaseMainFor
{

    public static void main (String [ ] args) {

        System.out.println ("Empezamos el programa");

        System.out.println ("Por favor introduzca una cadena por teclado:");

        String entradaTeclado = "";

        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner

        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner

        System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");

        int longitud = entradaTeclado.length();// metodo length
        int i = 0;

        String subcadena = entradaTeclado.substring(i,i++);// método substring

        System.out.println (subcadena);
       
        for ( i=0; i < longitud; i++){
            int j = i +1;
            subcadena = entradaTeclado.substring(i,j);
            System.out.println ("Letra "+ (i+1) + ": "+ subcadena);
        }

    }
}

5
Dejo mi solución para este ejercicio.

He dudado en la segunda parte del ejercicio de si podía resolverlo usando el método
equals (Object a, Object b) para poder comparar la subcadena extraida del texto introducido con el método subestring. No se me ocurría otra forma de resolverlo, aunque luego he leído en el foro otras soluciones con otros métodos como startsWith().

Mi solución diferencia entre "a" y "A" ya que he entendido que el ejercicio pedía diferenciar entre la mayúscula y la minúscula.

Citar
Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método length de la clase String y el método substring de la clase String, muestre un mensaje indicando:

a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.

b) Si la cadena introducida comienza por la letra a.

Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.

El código propuesto es el siguiente:
Código: [Seleccionar]
/**
 * ClaseMain
 * Clase principal iniciadora del programa
 * Pide una entrada de teclado y usa condicionales, el método length y el método substring de la clase String
 * @author (Juanfran.ib)
 * @version (22/07/2023)
 */

import java.util.Scanner;//Importación del código de la clase Scanner desde la biblioteca Java
import java.util.Objects;//Importación del código de la clase Objects desde la biblioteca Java.

//Código de nuestra clase principal
public class ClaseMain
{
    public static void main (String [ ] args) {

        System.out.println ("Empezamos el programa");

        System.out.println ("Por favor introduzca una cadena por teclado:");

        String entradaTeclado = "";

        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner

        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner

        System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
       
        int longitud = entradaTeclado.length();
        String subcadena = entradaTeclado.substring(0,1);
       
        if (longitud < 5){
            System.out.println ("El texto introducido tiene menos de cinco caracteres.");
        }else if(longitud > 15) {
            System.out.println ("El texto tiene más de 15 caracteres.");
        }else{
            System.out.println ("El texto introducido tiene entre cinco y quince caracteres.");
        }
       
        if (Objects.equals("a",subcadena)){
            System.out.println ("El texto introducido empieza por la letra "+ subcadena);
        }else{
            System.out.println ("El texto introducido no empieza con la letra a, empieza por la letra "+ subcadena);
        }   
    }//cierre del main
}//Cierre de la clase

6
Subo mi solución propuesta para el ejercicio CU00644B del curso básico de algoritmia y programación con Java de aprenderaprogramar:

Código: [Seleccionar]
/**
 * MultiplicadorDieces
 *
 * @author (Juanfran.ib)
 * @version (20/07/2023)
 */

public class MultiplicadorDieces
{//nada que declarar

    public MultiplicadorDieces(){//constructor vacío
    }

    public double multiplicarPorDieces (double a, int b){
        if (b==0) { return 1;}
        else {double potencia = 10 * multiplicarPorDieces (1, b-1);return a*potencia;}
    }
}

Saludos y gracias por este excelente curso.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".