Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: portocarrerojava en 10 de Diciembre 2015, 21:00
-
Dos preguntas:
Primera: uso sistema operativo Windows, mala suerte con el 10 mi hermano hizo la actualización, que teclas empleo acá para que reconozca el hasNext, porque según lo que he leido debe ser ctrl z para windows e intro, pero nada, ni con ctrl d, y hay casos en lo que no es bueno estar usando centinela para aplicaciones mas practicas.
Segunda: cuando escribo un archivo de texto, uso el método formater de clase Formatter, ¿como puedo imprimir una nueva línea, (¿se puede?)? uso el \n como aparece en el manual que sigo, pero parece que no lo reconoce y escribe todo seguido en el archivo de texto.
Gracias!!!!
-
Hola portocarrerojava
Primera: Si estás usando Java no veo necesario usar teclas especiales, pega el código que estés usando y explica dónde tienes el problema para intentar responderte. Es posible que el problema esté relacionado con lo que se comenta en este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=3521.0
Segunda: pega el código que estés usando y explica dónde tienes el problema para intentar responderte. Normalmente se puede usar "%n" para generar la salida de nueva línea propia de la plataforma-sistema operativo con que se esté trabajando usando la clase formatter.
Saludos
-
Hola.
Aquí mismo se puede observar mis dos preguntas: esto es una parte del código que lee datos ingresados del teclado y los escribe en un archivo de texto. Aquí también uso el format (...) y donde no puedo imprimir la nueva línea en el archivo de texto.
while (entrada.hasNext ()){
try{
encuesta.establecerCalificacion(entrada.nextInt ());
encuesta.establecerFrecuencia(entrada.nextInt ());
if ((encuesta.obtenerCalificacion() > 0) &&
(encuesta.obtenerFrecuencia() > 0)){
salidaEncuesta.format ("%d %d \n",
encuesta.obtenerCalificacion(),
encuesta.obtenerFrecuencia());
}else
System.out.println ("La calificacion ingresada debe ser ma"
+ "yor que cero");
}catch (FormatterClosedException formatterClosedException){
System.err.println ("Error al escribir el archivo.");
return;
}catch (NoSuchElementException elementException){
System.err.println ("Entrada invalida. Intentelo de nuevo.");
entrada.nextLine ();
}
System.out.printf ("%s %s\n", "Escriba la calificacion (>0) y la "
+ "frecuencia de la calificacion (>0)", "? ");
}
}
Esta es la parte del código, como no me funciona el hasNext, uso:
while (entrada.nextInt () != -1){.... //y el resto del código es igual al que he pegado...}
pero el problema con usar nextInt es que me hace ingresar un valor que no me interesa, y no se va a usar para los datos, en una aplicación para un negocio, para el cliente debería ser algo mas directo sin tener que estar ingresando un valor que no se use como dato.
Gracias de antemano por la ayuda!
-
Buenas
Este es un ejemplo de pedir datos sin necesidad de introducir un valor extraño final
import java.util.Scanner;
import java.util.ArrayList;
public class Test1 {
public static void main (String [] args) {
Integer dato=0;
String entrada;
ArrayList <Integer> listaDatos = new ArrayList<Integer> ();
System.out.print ("Introduzca los datos y cuando termine pulse enter. Primer dato: ");
Scanner sc = new Scanner(System.in);
entrada = sc.nextLine();
dato = dato.valueOf(entrada);
listaDatos.add((Integer)dato);
while (entrada.equals("") == false){
System.out.print ("Introduzca dato: ");
entrada = sc.nextLine();
if (entrada.equals("")==false) {
dato = dato.valueOf(entrada);
listaDatos.add((Integer)dato);
}
}
System.out.println ("¡TERMINADO! Los datos son:" +listaDatos);
}
}
¿Para el salto de línea has probado el %n?
Salu2
-
Gracias!! probare ambas cosas
-
Buenas!
Creo que el problema que tienes con el salto de linea "\n" se debe al programa con el que lo abres, el bloc de notas no los visualiza. En cambio, si usas el notepad++ se ven bien ordenados.
Un saludo!