Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - PabloPbl

#121
Java / Re: ayuda con ejercicio en java
10 Abril 2015, 03:37 AM
Acá tenes otra forma de hacerlo.

Tu forma es bastante funcional, pero si quisieras hacer algo con esos promedios desde otra parte del código, te verías limitado.

Solo debes de agregar un ArrayList y hacer un cambio en el for:


Código (java) [Seleccionar]

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;


public class ImprimirPromedios {

   public static void main(String[] args) {
       File file = new File ("miarchivo.txt");
       Scanner lector = null;
       
       try {
           lector = new Scanner(file);
       }
       catch (Exception ex) {
           System.out.println("Error: "+ex.getMessage());
       }
       
       ArrayList<Integer> promedios = new ArrayList<Integer>();
       
       int suma=0;
       int cant=0;
       
       /*
       Sumo todos los numeros de todas las lineas y despues la divido por la cantidad de numeros
       */
       while(lector.hasNext()) {
           //Leo una linea completa del archivo
           String numerosDelArchivo = lector.nextLine();
           
           //Separo los numeros y los guardo en un array de String
           String[] numerosSeparados = numerosDelArchivo.split(",");
           
           //Sumo todos los numeros del array y los guardo en la variable suma
           for(int i = 0; i < numerosSeparados.length; i++) {
               suma += Integer.parseInt(numerosSeparados[i]);
               cant++;
           }
           promedios.add(suma/cant);
           suma = 0;
           cant = 0;
       }
       
       for(int i = 0; i < promedios.size(); i++) {
           System.out.println(i+1+") promedio "+i+1+" es: "+promedios.get(i));
       }
       
       lector.close();
   }
   
}


De esta forma, tendrías el promedio de cada linea y podrías hacer algunas cosas con esos valores, como por ejemplo obtener el promedio total:

Código (java) [Seleccionar]

int promedioTotal = 0;
       
       for(int i = 0; i < promedios.size(); i++) {
           promedioTotal += promedios.get(i);
       }
       
       System.out.println("El promedio total de lineas es: "+promedioTotal/promedios.size());


Si quieres probar este código, agrégalo al final del main.

Ready, espero que te haya servido, y hazle caso a Gus, si tienes alguna duda al respecto, escríbela aquí, aumentara las probabilidades de recibir una respuesta y puede que también le sirva a alguien mas.

Saludos!
#122
xD, El string.xml mas que nada sirve para poder internacionalizar la aplicación, osea poder tener la app en distintos idiomas.

Tu tienes varios xml con los mismos punteros, solo que con diferentes valores, y a valores me refiero a el texto que usara la App para mostrar texto, pues esos valores los puedes poner en diferentes idiomas. Cada xml sera para un idioma en particular. Entonces cuando tu usas la App en una teléfono con un idioma en concreto, pues Android detectara que archivo xml se usara para la App, cabe destacar que para eso tienes que poner unos nombres a los xml para que Android sepa cual usar en cada caso.

Salu2  ;D
#123
Bueno después de cansarme y cansarme probando en busca de soluciones, di en el blanco.

Pues resulta que para me haga la codificación, tenia que si o si obtener los String del xml donde se guardan los Strings(string.xml) y de ahí hacer la codificación.

Código (xml) [Seleccionar]

String text = newString(getString(R.string.activity_MostrarImagen_tituloEjecucion).getBytes(), "UTF-8");
String encodedText = Html.fromHtml(text).toString();
tv1.setText(encodedText);


Pues lo que ya hacia era poner un String directamente en el código y no obteniéndolo del xml.

Por lo menos eso resolvió mi problema.

Salu2 y muchas gracias a todos.
#124
He hecho la impresión de 3 formas y me muestra ese signo <?> en vez de las tildes, osea no mantiene las tildes:

Código (java) [Seleccionar]

Toast.makeText(this, encodedText, Toast.LENGTH_LONG).show();
System.out.println(encodedText);
Log.e("IMPRESIÓN", encodedText);
#125
He probado el código pero sigue sin funcionarme

Lo he puesto de la siguiente manera:

Código (java) [Seleccionar]

try{
                    String texto1 = "Ejecución";
                    String text = new String(texto1.getBytes(), "UTF-8");
                    String encodedText = Html.fromHtml(text).toString();
                    tv1.setText(encodedText);

                    String texto2 = "Explosión";
                    String text2 = new String(texto2.getBytes(), "UTF-8");
                    String encodedText2 = Html.fromHtml(text2).toString();
                    tv2.setText(encodedText2);


                }
                catch(Exception e) {
                    Toast.makeText(this, "Error encodec", Toast.LENGTH_LONG).show();
                }


He descubierto que si agrego todo el texto que quiero que se muestre en el TextView, me lo hace y me lo muestra correctamente, pero si intento cambiar el valor del TextView desde el código Java me lo muestra mal. ¿No sera que algo debo especificar algo en mi código?
#126
Hola Gus, muchas gracias de antemano.

Pero en la segunda linea estas haciendo referencia a una variable "c" si no me equivoco que no existe, y me da error.
#127
Pues tengo un TextView que lo agrego desde el xml que por defecto lo dejo vacio para luego desde el código java poner algún texto como consecuencia de una acción de un botón.

Resulta que al momento de setear el texto del TextView desde el código, los caracteres especiales como las tilde por ejemplo, se muestran así <?> y no como debería ser.

He intentando metiendo una codificación UTF-8 dentro del xml donde va el TextView, pero nada, al momento de mostrarse no me reconoce esos caracteres.

¿Alguien sabe que tengo que especificar y cómo?
#128
Java / Re: ayuda con ejercicio en java
5 Abril 2015, 07:20 AM
Por lo que veo quieres sumar todos los números de todas las lineas del archivo de texto y luego dividir esa cantidad por el total de valores que hay en el archivo de texto.

Tal como dice DarK_FirefoX también existe ese método split() y funciona de la misma manera en Java, te pongo un ejemplo abajo.
Mira este código e intenta entenderlo:

Código (java) [Seleccionar]

import java.io.File;
import java.util.Scanner;


public class ImprimirPromedios {

   public static void main(String[] args) {
       File file = new File ("miarchivo.txt");
       Scanner lector = null;
       
       try {
           lector = new Scanner(file);
       }
       catch (Exception ex) {
           System.out.println("Error: "+ex.getMessage());
       }
       
       int suma=0;
       int cant=0;
       
       /*
       Sumo todos los números de todas las lineas y después la divido por la cantidad de números
       */
       while(lector.hasNext()) {
           //Leo una linea completa del archivo
           String numerosDelArchivo = lector.nextLine();
           
           //Separo los numeros y los guardo en un array de String
           String[] numerosSeparados = numerosDelArchivo.split(",");
           
           //Sumo todos los numeros del array y los guardo con un nuevo valor en la variable suma
           for(int i = 0; i < numerosSeparados.length; i++) {
               suma += Integer.parseInt(numerosSeparados[i]);
               cant++;
           }
       }
       
       System.out.println("Promedio de números es :  "  +  suma/cant);
       lector.close();
   }
   
}


Oka, comenta si no entendiste algo del código.

Salu2.
#129
Ok muchas gracias a todos tendré en cuenta lo que me habéis dicho.

Saludos!!!
#130
Hola Darhius, el hilo que comentas me ayudo bastante, muchas gracias.

Hola engel lex, ¿Cada sistema tiene su propia API? tengo entendido que la API de un SO te brinda funciones para realizar cosas con el SO que se esta trabajando
¿O que vendría siendo exactamente?, lo que si se, es que acceder desde Java a la misma es mala practica, por lo que es recomendable usar un lenguaje aparte, dicho lenguaje tiene que poder acceder a la API del SO como C/C++