Java에서 사용자 입력을 받는 방법은 무엇입니까?
계산기를 만들려고 했지만 사용자 입력을 받을 수 없기 때문에 작동하지 않습니다.
자바에서 사용자 입력을 받으려면 어떻게 해야 하나요?
중 는 '어느 쪽인가'를하는 것입니다.Scanner
츠키다
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
클래스
import java.util.Scanner;
//...
Scanner scan = new Scanner(System.in);
String s = scan.next();
int i = scan.nextInt();
BufferedReader
및 클래스
import java.io.BufferedReader;
import java.io.InputStreamReader;
//...
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int i = Integer.parseInt(s);
DataInputStream
클래스
import java.io.DataInputStream;
//...
DataInputStream dis = new DataInputStream(System.in);
int i = dis.readInt();
readLine
의 DataInputStream
클래스가 폐지되었습니다.String 값을 가져오려면 이전 솔루션을 BufferedReader와 함께 사용해야 합니다.
Console
클래스
import java.io.Console;
//...
Console console = System.console();
String s = console.readLine();
int i = Integer.parseInt(console.readLine());
일부 IDE에서는 이 방법이 제대로 작동하지 않는 것 같습니다.
스캐너 클래스 또는 콘솔 클래스를 사용할 수 있습니다.
Console console = System.console();
String input = console.readLine("Enter input:");
를 사용하여 사용자 입력을 얻을 수 있습니다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String accStr;
System.out.println("Enter your Account number: ");
accStr = br.readLine();
String
.accStr
그것을 안 .int
를 사용합니다.
int accInt = Integer.parseInt(accStr);
키보드 입력을 얻는 방법은 다음과 같습니다.
Scanner scanner = new Scanner (System.in);
System.out.print("Enter your name");
String name = scanner.next(); // Get what the user types.
은 " " " 입니다.BufferedReader
★★★★★★★★★★★★★★★★★」Scanner
방법은 ""입니다.Scanner
, 그 실장,에, 합니다.
스캐너를 사용하는 장점
- 하기 쉽다
Scanner
표시 - 간단한 숫자 입력(int, short, byte, float, long 및 double)
- 예외는 선택되지 않습니다. 어느 쪽이 편리합니다.문명화되고 예외를 지정하거나 포착하는 것은 프로그래머의 몫이다.
- 줄, 공백 및 regex 구분 토큰을 읽을 수 있습니다.
Buffered Input Stream의 이점
- Buffered Input Stream은 한 번에 1바이트가 아닌 데이터 블록 단위로 읽는 것입니다.
- 문자, 문자 배열 및 행 읽기 가능
- 선택한 예외를 슬로우합니다.
- 고속 퍼포먼스
- 동기화됨(스레드 간에 공유할 수 없음)
전반적으로 각 입력 방법은 다른 목적을 가지고 있습니다.
의 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」
BufferedReader
에게 더 도 몰라를
Scanner
는 자동 을 실시하기 합니다.
더 는 ''를 합니다.Scanner
왜냐하면 그것은 사용하기 쉽고 프로그램을 만들기 쉽기 때문이다..Scanner
Scanner
Scanner scanner = new Scanner (System.in); // create scanner
System.out.print("Enter your name"); // prompt user
name = scanner.next(); // get user input
( 것에 는, 을 참조해 주세요).BufferedReader
BufferedReader 사용방법 및 문자행 읽기)를 참조하십시오.
java.displaces를 클릭합니다.스캐너
import java.util.InputMismatchException; // import the exception catching class
import java.util.Scanner; // import the scanner class
public class RunScanner {
// main method which will run your program
public static void main(String args[]) {
// create your new scanner
// Note: since scanner is opened to "System.in" closing it will close "System.in".
// Do not close scanner until you no longer want to use it at all.
Scanner scanner = new Scanner(System.in);
// PROMPT THE USER
// Note: when using scanner it is recommended to prompt the user with "System.out.print" or "System.out.println"
System.out.println("Please enter a number");
// use "try" to catch invalid inputs
try {
// get integer with "nextInt()"
int n = scanner.nextInt();
System.out.println("Please enter a decimal"); // PROMPT
// get decimal with "nextFloat()"
float f = scanner.nextFloat();
System.out.println("Please enter a word"); // PROMPT
// get single word with "next()"
String s = scanner.next();
// ---- Note: Scanner.nextInt() does not consume a nextLine character /n
// ---- In order to read a new line we first need to clear the current nextLine by reading it:
scanner.nextLine();
// ----
System.out.println("Please enter a line"); // PROMPT
// get line with "nextLine()"
String l = scanner.nextLine();
// do something with the input
System.out.println("The number entered was: " + n);
System.out.println("The decimal entered was: " + f);
System.out.println("The word entered was: " + s);
System.out.println("The line entered was: " + l);
}
catch (InputMismatchException e) {
System.out.println("\tInvalid input entered. Please enter the specified input");
}
scanner.close(); // close the scanner so it doesn't leak
}
}
" " " " 등의 기타 : " "Console
★★★★★★★★★★★★★★★★★」DataInputStream
실행 가능한 대안이기도 합니다.
Console
에는 패스워드 읽기 기능과 같은 몇 가지 강력한 기능이 있지만 일부 IDE(이클립스 등)에서는 사용할 수 없습니다.이 문제가 발생하는 이유는 Eclipse가 응용 프로그램을 시스템 콘솔에서 최상위 프로세스가 아닌 백그라운드 프로세스로 실행하기 때문입니다.다음 링크에서는 이 명령어를 구현하는 방법에 관한 유용한 예에 대한 링크를 제공합니다.Console
를 누릅니다
DataInputStream
는 주로 기본 입력 스트림에서 기본 데이터 유형으로 기계 독립적인 방식으로 입력을 읽는 데 사용됩니다. DataInputStream
는 일반적으로 이진 데이터를 읽는 데 사용됩니다.또한 특정 데이터 유형을 읽기 위한 편리한 방법도 제공합니다.예를 들어, 임의의 수의 행을 포함할 수 있는 UTF 문자열을 읽는 방법이 있습니다.
하지만, 그것은 더 복잡하고 실행하기 어렵기 때문에 초보자들에게는 추천하지 않는다.여기에서는, 이 기능을 실장하는 방법의 유용한 예에의 링크를 나타냅니다.DataInputStream
.
간단한 프로그램을 만들어 사용자의 이름을 묻고 회신에서 입력된 내용을 인쇄할 수 있습니다.
또는 사용자에게 두 개의 숫자를 입력하도록 요청하면 계산기의 동작처럼 해당 숫자를 추가, 곱하기, 빼기 또는 분할하여 사용자 입력에 대한 답을 출력할 수 있습니다.
그래서 스캐너 클래스가 필요합니다.해야 한다import java.util.Scanner;
에는 '코드로'를 사용해야 .
Scanner input = new Scanner(System.in);
입력은 변수 이름입니다.
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
다른지 해 주세요.input.next();
,i = input.nextInt();
,d = input.nextDouble();
String에 따르면 int와 double은 다른 부분에 대해 같은 방식으로 다릅니다.코드 상단에 있는 Import 스테이트먼트를 잊지 말아 주세요.
블로그 투고 "Scanner class and geting User Inputs"도 참조하십시오.
또는 , 「」를 합니다.BufferedReader
(와 )InputStreamReader
을 사용하다
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
String inputLine = bufferReader.readLine();
여기서 프로그램은 사용자에게 번호를 입력하도록 요구합니다.그 후, 그 숫자의 자릿수와 자릿수의 합계를 인쇄한다.
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);
}
}
, 여기 있다, 하다, 하다, 하다, 하다를 사용한 입니다.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; }
}
Scanner input = new Scanner(System.in);
String inputval = input.next();
스캐너 입력=새로운 스캐너(System.in); int integer=input.nextInt();문자열=input.next();long long Integer=input.nextLong();
한 가지만 더요메모리/리소스 누수 위험을 감수하지 않으려면 작업이 끝나면 스캐너 스트림을 닫아야 합니다.
myScanner.close();
Java 1.7 이후에서는 컴파일 경고로 검출됩니다(어떻게 알고 있는지 묻지 마십시오:-).
다음으로 일반적인 두 가지 요구에 대응하는 보다 발전된 버전의 답변을 제시하겠습니다.
- 종료 값이 입력될 때까지 사용자 입력 수집 반복
- 잘못된 입력 값 처리(이 예에서는 정수 이외의 값)
코드
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();
}
}
예
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...
는, 「」가 없는 것에 해 주세요.nextLine()
잘못된 입력은 무한 루프에서 동일한 예외를 반복적으로 트리거합니다. 하면 것 요.next()
, 입력은 '알겠습니다', '알겠습니다', '알겠습니다', '알겠습니다', '알겠습니다', ''와 같은 입니다.this has spaces
여러 예외가 생성됩니다.
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);
}
}
throws IOException
가 옆에main()
(그래서)
DataInputStream input = new DataInputStream(System.in);
System.out.print("Enter your name");
String name = input.readLine();
java로 입력하는 것은 매우 간단합니다.필요한 것은 다음과 같습니다.
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);
}
}
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);
}
}
BufferedReader를 사용하면 다음과 같은 사용자 입력을 얻을 수 있습니다.
InputStreamReader inp = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(inp);
// you will need to import these things.
이렇게 하면 됩니다.
String name = br.readline();
따라서 사용자가 콘솔에 자신의 이름을 입력하면 "String name"에 해당 정보가 저장됩니다.
저장할 번호의 경우 코드는 다음과 같습니다.
int x = Integer.parseInt(br.readLine());
이거 좀 도와줘!
이렇게 될 수도 있고...
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");
}
은 하다를 사용하여 수 .Scanner
유형에 따라 입력 할 수 .next()
★★★★★★에String
★★★★★★★★★★★★★★★★★」nextInt()
★★★★★★에Integer
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
//reads the input until it reaches the space
System.out.println("Enter a string: ");
String str = scanner.next();
System.out.println("str = " + str);
//reads until the end of line
String aLine = scanner.nextLine();
//reads the integer
System.out.println("Enter an integer num: ");
int num = scanner.nextInt();
System.out.println("num = " + num);
//reads the double value
System.out.println("Enter a double: ");
double aDouble = scanner.nextDouble();
System.out.println("double = " + aDouble);
//reads the float value, long value, boolean value, byte and short
double aFloat = scanner.nextFloat();
long aLong = scanner.nextLong();
boolean aBoolean = scanner.nextBoolean();
byte aByte = scanner.nextByte();
short aShort = scanner.nextShort();
scanner.close();
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Welcome to the best program in the world! ");
while (true) {
System.out.print("Enter a query: ");
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
if (s.equals("q")) {
System.out.println("The program is ending now ....");
break;
} else {
System.out.println("The program is running...");
}
}
}
}
입니다.System.in.read()
코드는 입력된 .이 코드는 입력된 모든 것을 기록한다.한 번만 입력하려는 경우 while loop을 제거할 수 있으며, 원하는 경우 문자 배열에 답변을 저장할 수 있습니다.
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;
}
}
}
}
저는 다음을 좋아합니다.
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;
}
}
}
예를 들어, 저는 다음과 같이 합니다.
String name = this.readLine("What is your name?")
다른 사람들이 올린 것처럼 스캐너를 사용하여 키보드 입력을 할 수 있습니다.그러나 그래픽이 높은 시대에는 그래픽 사용자 인터페이스(GUI)가 없는 계산기를 만드는 것은 무의미합니다.
현대 Java에서는 Scene Builder와 같은 JavaFX 드래그 앤 드롭 도구를 사용하여 계산기 콘솔과 유사한 GUI를 배치하는 것을 의미합니다.Scene Builder는 직관적으로 사용하기 쉬우며 이미 가지고 있는 이벤트 핸들러에 추가 Java 스킬을 필요로 하지 않습니다.
사용자 입력의 경우 GUI 콘솔 상단에 넓은 TextField가 있어야 합니다.
여기서 사용자가 기능을 수행할 번호를 입력합니다.TextField 아래에는 기본 기능(즉, add/subtract/multiply/divide 및 memory/recall/clear)을 수행하는 기능 버튼 배열이 있습니다.GUI가 표시되면 각 버튼 기능을 Java 구현에 링크하는 '컨트롤러' 참조를 추가할 수 있습니다.예를 들어 프로젝트 컨트롤러 클래스의 메서드 호출입니다.
이 비디오는 조금 오래되었지만 Scene Builder가 얼마나 사용하기 쉬운지를 보여줍니다.
사용자 입력을 받는 가장 간단한 방법은 스캐너를 사용하는 것입니다.다음은 사용 방법의 예입니다.
import java.util.Scanner;
public class main {
public static void main(String[]args) {
Scanner sc=new Scanner(System.in);
int a;
String b;
System.out.println("Type an integer here: ");
a=sc.nextInt();
System.out.println("Type anything here:");
b=sc.nextLine();
행 " " "import java.util.Scanner;
프로그래머가 코드에서 사용자 입력을 사용하게 된다는 것을 프로그램에 알립니다.수입하다 Scanner sc=new Scanner(System.in);
프로그램에 사용자 입력을 시작하도록 지시합니다.후 값을 , 그값 없이 에 넣어야 .a=sc.nextInt();
★★★★★★★★★★★★★★★★★」a=sc.nextLine();
이것은 변수에 사용자 입력 값을 제공합니다.그리고 나서 여러분은 코드에서 사용할 수 있습니다.그러면 코드에 사용할수 있습니다.이 도움이 되면 좋겠어.이게도움이 됐으면 좋겠다.
JOption Pane을 사용하면 달성할 수 있습니다.
Int a =JOptionPane.showInputDialog(null,"Enter number:");
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);
}
}
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
언급URL : https://stackoverflow.com/questions/5287538/how-to-get-the-user-input-in-java
'programing' 카테고리의 다른 글
현재 요소 데이터 속성의 액세스 루프 인덱스 - VueJs (0) | 2022.07.26 |
---|---|
vuex: 알 수 없는 getter: 사용자 (0) | 2022.07.26 |
결과 Vue graphql에 쿼리 특성이 누락됨 (0) | 2022.07.26 |
fork()가 내부적으로 clone()을 호출한다는 것이 사실입니까? (0) | 2022.07.26 |
문자열을 URI로 변환 (0) | 2022.07.26 |