Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ======================================================================================================================
- * Modelo de Desarrollo de Programas y Programación Concurrente - Facultad de Ingeniería - Universidad Nacional de Jujuy
- ======================================================================================================================
- */
- /**
- * @Autor: Grupo 02 M.D.P y P.C.
- /* @Integrantes: | @Carrera: | @DNI:
- | |
- ALVAREZ, Cesar Fabian | Ing. Informática | 41.275.832
- CABANA, Mario Ariel Fernando | Ing. Informática | 42.268.639
- MONTELLANO, Leandro | Ing. Informática | 43.114.035
- RETAMOZO CORTEZ, Candelaria | Ing. Informática | 95.790.260
- RUIZ, Erica Vanina | Ing. Informática | 38.471.424
- * @Fecha: 21/04/2022.
- */
- /*
- Trabajo Práctico N°2 / Introducción a Java Parte 1 / Punto 05
- --------------------- --------------------------- --------
- * Objetivo General: Cree una aplicación que lea el archivo “TP02Frase.txt”, pasarle la ubicación al programa.
- A continuación debe calcular y mostrar lo siguiente:
- - Cantidad de cada una de las vocales (cantidades de A/a, E/e, I/i, O/o y U/u).
- - Cantidad de espacios en blanco.
- - Cantidad de palabras.
- - Cantidad de letras en mayúscula.
- - Cantidad de líneas del archivo.
- - Cantidad de signos de puntuación.
- - Para cada vocal (acentuada o no) obtenga el código ASCII, adiciónele 20 a dicho
- valor, y vuelva a obtener el carácter correspondiente reemplazando el nuevo
- valor en la frase original. Muestre por pantalla el nuevo resultado.
- * El trabajo se ha realizado utilizando las siguientes IDEs: Eclipse 2020-06(4.16)-(IDE for Java Developers) - Apache Netbeans IDE 12.4 - IntelliJ IDEA 2021.2.3
- * Lenguaje de programación: Java POO.
- * Api a utilizar. Paquete:- Java.util / Clase:- StringTokenizer, Scanner.
- * Paquete:- Java.io / Clase:- BufferedReader, FileReader, IOException.
- * Clase principal: EntregaTPN2.
- * Clases secundarias: HelperTp2, Ejercicio5, Ejercicio6.
- */
- package ar.edu.unju.aplicacion;
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.StringTokenizer;
- public class Ejercicio5 {
- //------------Vector para toda la clase Tp02ejer5------------//
- public static char[]a={'a','A','á','Á'},e={'e','E','é','É'},i={'i','I','','í','Í'},o={'o','O','ó','Ó'},u={'u','U','ú','Ú'};
- //------------------- Inicio método run() -------------------//
- public static void run(){
- // Cadena para guardar el contenido de una linea de texto.
- String linea;
- // Contadores.
- int espaciosBlanco=0, mayusculas=0,signos=0,palabras=0,totalLineas=0;
- int vocalA=0,vocalE=0,vocalI=0,vocalO=0,vocalU=0;
- System.out.println("---------- EJERCICIO 5 - Texto ---------------");
- try {
- // Lectura del archivo.
- FileReader fr = new FileReader("C:\\Users\\Alicia Alfaro\\fi\\year 3\\Modulo de Desarrollo de Programas y Programación Concurrente\\tp2\\TP02Frase.txt");
- BufferedReader br = new BufferedReader(fr);
- while((linea=br.readLine())!=null){
- // Se imprime en pantalla la linea leida.
- System.out.println(linea);
- // Se guarda cada linea como un vector de caracteres.
- char[] lineaChar=linea.toCharArray();
- /* Se cuentan las vocales
- Aqui se tiene en cuenta que las vocales pueden llevar tilde
- por lo que es mas conveniente guardarlas en un vector
- de caracteres que usar el el codigo ASCII.*/
- vocalA+=recorrerLinea(lineaChar, a);
- vocalE+=recorrerLinea(lineaChar, e);
- vocalI+=recorrerLinea(lineaChar, i);
- vocalO+=recorrerLinea(lineaChar, o);
- vocalU+=recorrerLinea(lineaChar, u);
- // Se cuentan los espacios en blanco.
- espaciosBlanco+=detectarVocal(lineaChar, ' ');
- // Se cuentan las palabras.
- StringTokenizer st=new StringTokenizer(linea);
- palabras+=st.countTokens();
- // Se cuentan las mayusculas.
- mayusculas+=contarMayusculasSignos(lineaChar,1);
- // Se cuentan las lineas.
- totalLineas++;
- // Se cuentan los signos.
- signos+=contarMayusculasSignos(lineaChar,2);
- /* Se transforma el texto con el codigo ASCII segun indica
- la consigna.*/
- System.out.println(modificarLineaASCII(linea, lineaChar));
- }
- System.out.println("-------------- Resultados -------------------");
- mostrarResultado("vocales a",vocalA);
- mostrarResultado("vocales e",vocalE);
- mostrarResultado("vocales i",vocalI);
- mostrarResultado("vocales o",vocalO);
- mostrarResultado("vocales u",vocalU);
- mostrarResultado("espacios en blanco",espaciosBlanco);
- mostrarResultado("palabras",palabras);
- mostrarResultado("letras en mayusculas",mayusculas);
- mostrarResultado("lineas",totalLineas);
- mostrarResultado("signos de puntutación",signos);
- fr.close();
- }
- catch (IOException e) {
- System.out.println("Error No se encontro el archivo:" + e.getMessage());
- }
- }
- //------------------ Contadores Especificos Char ------------------//
- /* Este metodo recorre una linea de texto que se encuentra como
- un vector de caracteres.*/
- public static int recorrerLinea(char[] texto,char[] vocales) {
- int contador=0;
- for(int i=0;i<vocales.length;i++) {
- contador+=detectarVocal(texto, vocales[i]);
- }
- return contador;
- }
- //---------------- Recorrer Vector y Contar Char ----------------//
- /* Este metodo detecta las vocales.*/
- public static int detectarVocal(char[] text, char vocal){
- int contador=0;
- for(int i=0;i<text.length;i++){
- if(text[i]==vocal){
- contador++;
- }
- }
- return contador;
- }
- //------------------ Contar mayusculas o Signos -----------------//
- /* Segun la opcion, este metodo calcula las mayusculas o signos segun
- el codigo ASCII.*/
- public static int contarMayusculasSignos(char[] textVectorChar, int opcion){
- char op=' ';
- int mayuscula=0,signos=0;
- for(int i = 0; i<textVectorChar.length;i++) {
- op=textVectorChar[i];
- switch (opcion){
- case 1:
- mayuscula= mayuscula(op,mayuscula);
- break;
- case 2:
- signos=signos(op,signos);
- break;
- }
- }
- switch (opcion){
- case 1:
- return mayuscula;
- case 2:
- return signos;
- default:
- return 0;
- }
- }
- //------------------ Detectar mayusculas ------------------//
- /* Este metodo detecta las mayusculas segun el codigo ASCII.*/
- public static int mayuscula(char op,int mayuscula) {
- if ((op>=65) && (op<=90)) {
- mayuscula=mayuscula+1;
- }
- return mayuscula;
- }
- //------------------ Detectar signos de puntuacion ------------------//
- /* Este metodo detecta los signos de puntuación segun el codigo ASCII.*/
- public static int signos(char op, int signos) {
- if (((op>=33) && (op<=47)) || ((op>=58) && (op<=63) )||((op>=160) && (op<=191))){
- signos=signos+1;
- }
- return signos;
- }
- //------------- Aumentar Caracter mas 20 en ASCII -------------//
- /* Este metodo modifica completamente el texto(segun especifica la
- consigna)haciendo uso de otro metodo.*/
- public static String modificarLineaASCII(String texto,char[] text) {
- texto=reemplazarVocal(texto,text,u);
- texto=reemplazarVocal(texto,text,e);
- texto=reemplazarVocal(texto,text,i);
- texto=reemplazarVocal(texto,text,o);
- texto=reemplazarVocal(texto,text,a);
- return texto;
- }
- //--------------- Detectar vocales y reemplazar en el texto --------------//
- /* Este metodo detecta las vocales (con otro metodo) mediante los
- vectores de vocales definidos globalmente.
- Luego los reemplaza con el metodo .replace definido en la clase String*/
- public static String reemplazarVocal(String texto,char[] text,char[] vocalColeccion) {
- for(int i=0;i<text.length;i++){
- for(int j=0;j<vocalColeccion.length;j++){
- if(text[i]==vocalColeccion[j]){
- texto=texto.replace(text[i],modificarVocal(text[i]));
- }
- }
- }
- return texto;
- }
- // --------------- Detectar vocales y sumar 20 ---------------- //
- /*Este metodo detecta las vocales del texto, las convierte en codigo
- ASCII, le suma 20, y las vuelve a convertir a caracteres.
- El metodo retorna el nuevo caracter obtenido.*/
- public static char modificarVocal(char caracter) {
- int numASCIIxCaracter;
- numASCIIxCaracter=(int)caracter;
- numASCIIxCaracter+=20;
- caracter=(char)numASCIIxCaracter;
- return caracter;
- }
- //--------------------- Resultados - Tp02ejer5 --------------------//
- public static void mostrarResultado(String algo, int n){
- System.out.println("El total de "+algo+" en el archivo .txt es: "+n);
- }
- }
Add Comment
Please, Sign In to add comment