salto - string en java
¿Cómo puedo obtener la entrada del usuario en Java? (24)
Añadir throws IOException
al lado de main()
, luego
DataInputStream input = new DataInputStream(System.in);
System.out.print("Enter your name");
String name = input.readLine();
Intenté crear una calculadora, pero no puedo hacer que funcione porque no sé cómo obtener información del usuario .
¿Cómo puedo obtener la entrada del usuario en Java?
Aquí es cómo puede obtener las entradas de teclado:
Scanner scanner = new Scanner (System.in);
System.out.print("Enter your name");
name = scanner.next(); // Get what the user types.
Aquí está su programa de la pregunta usando java.util.Scanner
:
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
int input = 0;
System.out.println("The super insano calculator");
System.out.println("enter the corrosponding number:");
Scanner reader3 = new Scanner(System.in);
System.out.println(
"1. Add | 2. Subtract | 3. Divide | 4. Multiply");
input = reader3.nextInt();
int a = 0, b = 0;
Scanner reader = new Scanner(System.in);
System.out.println("Enter the first number");
// get user input for a
a = reader.nextInt();
Scanner reader1 = new Scanner(System.in);
System.out.println("Enter the scend number");
// get user input for b
b = reader1.nextInt();
switch (input){
case 1: System.out.println(a + " + " + b + " = " + add(a, b));
break;
case 2: System.out.println(a + " - " + b + " = " + subtract(a, b));
break;
case 3: System.out.println(a + " / " + b + " = " + divide(a, b));
break;
case 4: System.out.println(a + " * " + b + " = " + multiply(a, b));
break;
default: System.out.println("your input is invalid!");
break;
}
}
static int add(int lhs, int rhs) { return lhs + rhs; }
static int subtract(int lhs, int rhs) { return lhs - rhs; }
static int divide(int lhs, int rhs) { return lhs / rhs; }
static int multiply(int lhs, int rhs) { return lhs * rhs; }
}
Aquí hay una versión más desarrollada de la respuesta aceptada que responde a dos necesidades comunes:
- Recopilación de la entrada del usuario varias veces hasta que se haya introducido un valor de salida
- Manejo de valores de entrada no válidos (no enteros en este ejemplo)
Código
package inputTest;
import java.util.Scanner;
import java.util.InputMismatchException;
public class InputTest {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("Please enter integers. Type 0 to exit.");
boolean done = false;
while (!done) {
System.out.print("Enter an integer: ");
try {
int n = reader.nextInt();
if (n == 0) {
done = true;
}
else {
// do something with the input
System.out.println("/tThe number entered was: " + n);
}
}
catch (InputMismatchException e) {
System.out.println("/tInvalid input type (must be an integer)");
reader.nextLine(); // Clear invalid input from scanner buffer.
}
}
System.out.println("Exiting...");
reader.close();
}
}
Ejemplo
Please enter integers. Type 0 to exit.
Enter an integer: 12
The number entered was: 12
Enter an integer: -56
The number entered was: -56
Enter an integer: 4.2
Invalid input type (must be an integer)
Enter an integer: but i hate integers
Invalid input type (must be an integer)
Enter an integer: 3
The number entered was: 3
Enter an integer: 0
Exiting...
Tenga en cuenta que sin nextLine()
, la entrada incorrecta activará la misma excepción repetidamente en un bucle infinito. Es posible que desee utilizar next()
lugar de las circunstancias, pero sepa que la entrada como this has spaces
generará múltiples excepciones.
Aquí, el programa le pide al usuario que ingrese un número. Después de eso, el programa imprime los dígitos del número y la suma de los dígitos.
import java.util.Scanner;
public class PrintNumber {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = 0;
int sum = 0;
System.out.println(
"Please enter a number to show its digits");
num = scan.nextInt();
System.out.println(
"Here are the digits and the sum of the digits");
while (num > 0) {
System.out.println("==>" + num % 10);
sum += num % 10;
num = num / 10;
}
System.out.println("Sum is " + sum);
}
}
Es muy simple obtener entrada en java, todo lo que tienes que hacer es:
import java.util.Scanner;
class GetInputFromUser
{
public static void main(String args[])
{
int a;
float b;
String s;
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
s = in.nextLine();
System.out.println("You entered string " + s);
System.out.println("Enter an integer");
a = in.nextInt();
System.out.println("You entered integer " + a);
System.out.println("Enter a float");
b = in.nextFloat();
System.out.println("You entered float " + b);
}
}
Este es un código simple que usa la función System.in.read()
. Este código simplemente escribe lo que fue escrito. Puede deshacerse del bucle while si solo desea recibir información una vez, y puede almacenar las respuestas en una matriz de caracteres si lo desea.
package main;
import java.io.IOException;
public class Root
{
public static void main(String[] args)
{
new Root();
}
public Root()
{
while(true)
{
try
{
for(int y = 0; y < System.in.available(); ++y)
{
System.out.print((char)System.in.read());
}
}
catch(IOException ex)
{
ex.printStackTrace(System.out);
break;
}
}
}
}
Me gusta lo siguiente:
public String readLine(String tPromptString) {
byte[] tBuffer = new byte[256];
int tPos = 0;
System.out.print(tPromptString);
while(true) {
byte tNextByte = readByte();
if(tNextByte == 10) {
return new String(tBuffer, 0, tPos);
}
if(tNextByte != 13) {
tBuffer[tPos] = tNextByte;
++tPos;
}
}
}
y por ejemplo, yo haría:
String name = this.readLine("What is your name?")
Para leer una línea o una cadena, puede usar un objeto BufferedReader
combinado con un InputStreamReader
uno de la siguiente manera:
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
String inputLine = bufferReader.readLine();
Puede hacer un programa simple para pedir el nombre del usuario e imprimir cualquier entrada de uso de respuesta.
O pídale al usuario que ingrese dos números y puede sumar, multiplicar, restar o dividir esos números e imprimir las respuestas para las entradas del usuario como un comportamiento de una calculadora.
Así que ahí necesitas clase de escáner. Tienes que import java.util.Scanner;
y en el código que necesitas usar
Scanner input = new Scanner(System.in);
La entrada es un nombre de variable.
Scanner input = new Scanner(System.in);
System.out.println("Please enter your name : ");
s = input.next(); // getting a String value
System.out.println("Please enter your age : ");
i = input.nextInt(); // getting an integer
System.out.println("Please enter your salary : ");
d = input.nextDouble(); // getting a double
Vea cómo esto difiere: input.next();
, i = input.nextInt();
, d = input.nextDouble();
Según una cadena, int y un doble varían de la misma manera para el resto. No olvide la declaración de importación en la parte superior de su código.
También vea la publicación del blog "Clase de escáner y obtención de entradas de usuario" .
Puede obtener la entrada del usuario utilizando BufferedReader
.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String accStr;
System.out.println("Enter your Account number: ");
accStr = br.readLine();
Almacenará un valor de String
en accStr
por lo que tendrá que analizarlo a un int
usando Integer.parseInt
.
int accInt = Integer.parseInt(accStr);
Puede obtener una entrada de usuario como esta utilizando un BufferedReader:
InputStreamReader inp = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(inp);
// you will need to import these things.
Así es como los aplicas.
String name = br.readline();
Entonces, cuando el usuario escribe su nombre en la consola, "Nombre de cadena" almacenará esa información.
Si es un número que desea almacenar, el código se verá así:
int x = Integer.parseInt(br.readLine());
Hop esto ayuda!
Puede ser algo como esto ...
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter a number: ");
int i = reader.nextInt();
for (int j = 0; j < i; j++)
System.out.println("I love java");
}
Puede utilizar cualquiera de las siguientes opciones según los requisitos.
Clase de Scanner
import java.util.Scanner;
Scanner scan = new Scanner(System.in);
String s = scan.next();
int i = scan.nextInt();
Clases BufferedReader
y InputStreamReader
import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int i = Integer.parseInt(br.readLine());
Clase DataInputStream
import java.io.DataInputStream;
DataInputStream dis = new DataInputStream(System.in);
int i = dis.readInt();
El método readLine
de la clase DataInputStream
ha quedado en desuso . Para obtener el valor de cadena, debe utilizar la solución anterior con BufferedReader
Clase de Console
import java.io.Console;
Console console = System.console();
String s = console.readLine();
int i = Integer.parseInt(console.readLine());
Al parecer, este método no funciona bien en algunos IDE.
Puedes usar la clase Scanner o la clase Console.
Console console = System.console();
String input = console.readLine("Enter input:");
Sólo un detalle extra. Si no desea arriesgarse a una pérdida de memoria / recursos, debe cerrar la secuencia del escáner cuando termine:
myScanner.close();
Tenga en cuenta que Java 1.7 y versiones posteriores detectan esto como una advertencia de compilación (no pregunte cómo sé que :-)
Utilice la clase del System
para obtener la entrada.
http://fresh2refresh.com/java-tutorial/java-input-output/ :
¿Cómo se aceptan los datos desde el teclado?
Necesitamos tres objetos,
- Sistema.in
- InputStreamReader
BufferedReader
- InputStreamReader y BufferedReader son clases en el paquete java.io.
- System.in, que es un objeto InputStream, recibe los datos en forma de bytes desde el teclado.
- Luego, el InputStreamReader lee bytes y los decodifica en caracteres.
- Luego, finalmente, el objeto BufferedReader lee el texto de un flujo de entrada de caracteres y almacena en búfer los caracteres para proporcionar una lectura eficiente de los caracteres, las matrices y las líneas.
InputStreamReader inp = new InputStreamReader(system.in);
BufferedReader br = new BufferedReader(inp);
Una de las formas más simples es usar un objeto Scanner
siguiente manera:
import java.util.Scanner;
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter a number: ");
int n = reader.nextInt(); // Scans the next token of the input as an int.
//once finished
reader.close();
Scanner input=new Scanner(System.in); int integer=input.nextInt(); String string=input.next(); long longInteger=input.nextLong();
Scanner input = new Scanner(System.in);
String inputval = input.next();
class ex1 {
public static void main(String args[]){
int a, b, c;
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c = a + b;
System.out.println("c = " + c);
}
}
// Output
javac ex1.java
java ex1 10 20
c = 30
import java.util.Scanner;
public class Myapplication{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a;
System.out.println("enter:");
a = in.nextInt();
System.out.println("Number is= " + a);
}
}
import java.util.Scanner;
public class userinput {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Name : ");
String name = input.next();
System.out.print("Last Name : ");
String lname = input.next();
System.out.print("Age : ");
byte age = input.nextByte();
System.out.println(" " );
System.out.println(" " );
System.out.println("Firt Name: " + name);
System.out.println("Last Name: " + lname);
System.out.println(" Age: " + age);
}
}
import java.util.Scanner;
class Daytwo{
public static void main(String[] args){
System.out.println("HelloWorld");
Scanner reader = new Scanner(System.in);
System.out.println("Enter the number ");
int n = reader.nextInt();
System.out.println("You entered " + n);
}
}