Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF1: classe Character»

De wikiserver
Dreceres ràpides: navegació, cerca
 
(Hi ha 6 revisions intermèdies del mateix usuari que no es mostren)
Línia 8: Línia 8:
 
:* Obtenir el caràcter que representa aquest nou codi Unicode.
 
:* Obtenir el caràcter que representa aquest nou codi Unicode.
 
:* Afegir aquest caràcter a la cadena resultant.
 
:* Afegir aquest caràcter a la cadena resultant.
 +
 +
 +
<source lang = "java">
 +
package excharacter;
 +
 +
import java.util.Random;
 +
import java.util.Scanner;
 +
 +
public class Ex1 {
 +
 +
    public static void main(String[] args) {
 +
        Random rnd = new Random();
 +
        int numAleatori = rnd.nextInt(995) + 5;
 +
        Scanner lector = new Scanner(System.in);
 +
        System.out.println("Introdueix la frase a codificar: ");
 +
        String text = lector.nextLine();
 +
        String textCodificat = "";
 +
        // Codificació
 +
        for (int i = 0; i < text.length(); i++) {
 +
            char caracter = text.charAt(i);
 +
            int codi = (int) caracter + numAleatori;
 +
            textCodificat += (char) codi;
 +
        }
 +
        System.out.println(textCodificat);
 +
 +
        //Decodificació
 +
        String textDecodificat = "";
 +
        for (int i = 0; i < textCodificat.length(); i++) {
 +
            char caracter = textCodificat.charAt(i);
 +
            int codi = (int) caracter - numAleatori;
 +
            textDecodificat += (char) codi;
 +
        }
 +
        System.out.println(textDecodificat);
 +
 +
    }
 +
 +
}
 +
</source>
 +
<!---->
 +
  
 
2. Escriure un programa, que donat un objecte de la classe String compti diferents tipus de caràcters. En particular, el mètode haurà d'imprimir el nombre de lletres, dígits i espais en blanc de la cadena. Per exemple la cadena: "Hola, sóc Carles Moreno, i dono classes des de 2010" donaria com a resultat:
 
2. Escriure un programa, que donat un objecte de la classe String compti diferents tipus de caràcters. En particular, el mètode haurà d'imprimir el nombre de lletres, dígits i espais en blanc de la cadena. Per exemple la cadena: "Hola, sóc Carles Moreno, i dono classes des de 2010" donaria com a resultat:
Línia 14: Línia 54:
 
:Dígits: 4
 
:Dígits: 4
 
:Espais en blanc: 9
 
:Espais en blanc: 9
 +
 +
 +
<source lang = "java">
 +
package excharacter;
 +
 +
public class Ex2 {
 +
 +
    public static void main(String[] args) {
 +
        final String frase = "Cumpleixo 18 anys el 15 del 12 del 2020";
 +
        int numLletres = 0, numDigits = 0, numEspais = 0;
 +
 +
        for (int i = 0; i < frase.length(); i++) {
 +
            if (Character.isDigit(frase.charAt(i))) {
 +
                numDigits++;
 +
            } else if (Character.isLetter(frase.charAt(i))) {
 +
                numLletres++;
 +
            } else if (Character.isWhitespace(frase.charAt(i))) {
 +
                numEspais++;
 +
            }
 +
        }
 +
        System.out.println("Lletres: " + numLletres);
 +
        System.out.println("Dígits: " + numDigits);
 +
        System.out.println("Espais en blanc:" + numEspais);
 +
    }
 +
 +
}
 +
</source>
 +
<!---->

Revisió de 17:43, 10 juny 2021

1. Escriu un programa que codifiqui i descodifiquiuna frase. El procediment per a decodificar serà l'invers que el de codificar.

Per a codificar el text es segueix el següent algorisme:

  • Generar un número aleatori entre 5 i 1000.
  • Convertir cada caràcter (inclòs l'espai) al seu codi Unicode.
  • Sumar-li a aquest codi el número aleatori.
  • Obtenir el caràcter que representa aquest nou codi Unicode.
  • Afegir aquest caràcter a la cadena resultant.


package excharacter;

import java.util.Random;
import java.util.Scanner;

public class Ex1 {

    public static void main(String[] args) {
        Random rnd = new Random();
        int numAleatori = rnd.nextInt(995) + 5;
        Scanner lector = new Scanner(System.in);
        System.out.println("Introdueix la frase a codificar: ");
        String text = lector.nextLine();
        String textCodificat = "";
        // Codificació
        for (int i = 0; i < text.length(); i++) {
            char caracter = text.charAt(i);
            int codi = (int) caracter + numAleatori;
            textCodificat += (char) codi;
        }
        System.out.println(textCodificat);

        //Decodificació
        String textDecodificat = "";
        for (int i = 0; i < textCodificat.length(); i++) {
            char caracter = textCodificat.charAt(i);
            int codi = (int) caracter - numAleatori;
            textDecodificat += (char) codi;
        }
        System.out.println(textDecodificat);

    }

}


2. Escriure un programa, que donat un objecte de la classe String compti diferents tipus de caràcters. En particular, el mètode haurà d'imprimir el nombre de lletres, dígits i espais en blanc de la cadena. Per exemple la cadena: "Hola, sóc Carles Moreno, i dono classes des de 2010" donaria com a resultat:

Lletres: 36
Dígits: 4
Espais en blanc: 9


package excharacter;

public class Ex2 {

    public static void main(String[] args) {
        final String frase = "Cumpleixo 18 anys el 15 del 12 del 2020";
        int numLletres = 0, numDigits = 0, numEspais = 0;

        for (int i = 0; i < frase.length(); i++) {
            if (Character.isDigit(frase.charAt(i))) {
                numDigits++;
            } else if (Character.isLetter(frase.charAt(i))) {
                numLletres++;
            } else if (Character.isWhitespace(frase.charAt(i))) {
                numEspais++;
            }
        }
        System.out.println("Lletres: " + numLletres);
        System.out.println("Dígits: " + numDigits);
        System.out.println("Espais en blanc:" + numEspais);
    }

}