이 글은 일반적인 데이터 유형의 입력 및 출력 관련 문제를 주로 소개하는 java에 대한 관련 지식을 제공합니다. 예제를 사용하여 이러한 일반적인 데이터 유형의 입력 및 출력 문제를 해결하는 방법을 살펴보겠습니다. .
추천 학습: "java tutorial"
C 언어를 배우고 Java로 전환한 후 첫 번째 느낌은 Java의 작성 방법이 매우 복잡하다는 것입니다. 일반적으로 사용되는 데이터 유형의 출력이 매우 편리합니다. C 언어에서는 scanf 함수를 사용하면 대부분의 형식을 쉽게 입력할 수 있지만 Java에서는 scanf와 유사한 명령문이 없습니다.
이 글은 나의 입력과 출력 습관과 질문을 했던 기록을 결합하여 정수, 정수이지만 분리된 매개변수와 같은 다양한 유형에 대한 요약을 만듭니다... 다음 지침에서 기본 클래스는 모두 Main 클래스이며 입력에는 Scanner를 사용합니다. 각 입력 또는 출력에는 여러 메서드가 있을 수 있으며, 저는 더 간단한 메서드만 작성했습니다.
여기서 언급하는 char 유형은 한 문자만 입력하는 경우를 말합니다.
<code>import
<code>import
<span style="background-color:#ed7976;">java.io.IOException</span>;//导入包
public
class
Main {<!-- -->
public
static
void
main(String[] args)
<span style="background-color:#ed7976;">throws</span>
<span style="background-color:#ed7976;">IOException</span> {<!-- -->
<strong><span style="color:#0d0016;">char</span></strong>
ch = (
char)System.in.read();//<1>
System.out.println((
int
)ch);
}
;//패키지 가져오기
}
java.io.IOException
public
class
메인 {
public
static
void
main(String[] args)
throws
{
ch = (
char)System.in.read();// <1>
2, int 유형
System.out.println((
int
)ch); code> code><p></p> <code>
}
}
참고: IOException과 함께 사용해야 합니다. <1>에서 System.in은 표준 입력 스트림(가장 일반적으로 키보드)으로부터 입력을 받고 rand() 메소드는 이 스트림에서 입력 내용을 읽습니다. <1>의 입력 결과는 int 유형이므로 char 유형으로 변환해야 합니다.
1.2 예시
1.1 단순 int 형식 입력:
public class Main { public static void main(String[] args) {
nextInt (); System.out.println(num)
🎜🎜 1.2 예제 🎜🎜참고: Long num이어야 합니다. 그렇지 않으면 num이 매우 크면 결과가 부정확해집니다. 🎜🎜🎜🎜🎜🎜🎜🎜2.1 공백이 있는 int 형식으로 입력합니다. 🎜🎜 23 34와 같은 형식과 유사합니다. 이때, int 입력만으로는 문제를 해결할 수 없습니다. 물론, 두 개의 scan.nextInt()를 연속해서 입력하면 됩니다. 그러나 이때 우리는 여전히 관점을 바꿔야 합니다. 23 34 전체를 문자열로 처리한 다음 공백에서 이를 23과 34의 두 문자열로 분할한 다음 이 두 문자열을 정수로 변환합니다. Split() 메소드에 대한 공식 도움말 매뉴얼을 확인하세요. 🎜🎜🎜import 🎜java.util.Scanner🎜;🎜🎜public class Main {🎜🎜 public static void main(String[] args) {🎜🎜
} }
Scanner scan = new Scanner(System.in);
String[] str = scan.nextLine().split("[ ]");//여러 조각으로 나누어져 있으며 여러 개의 문자열 배열이 있습니다. 여기에는 두 개의 블록이 있습니다.
int a = Integer.parseInt(str[0]);
int b = Integer.parseInt(str[1]);//기타...
System.out.println(a + " " + b);
}
}
a=3, b=2 입력과 유사하며 방법은 설명한 상황과 동일합니다 2.1에서도 똑같습니다. 여기서는 바로 예제로 넘어갑니다.
long 유형과 int 유형의 입력은 유사하므로 다시 반복되지 않습니다.
Java에서는 float 유형보다 double 유형을 더 자주 사용해야 합니다.
부동 소수점 유형의 가장 중요한 점은 소수점 이하 두 자리를 유지하는 등 형식화된 출력입니다. Java에는 C 언어와 유사한 printf 메소드가 있으며 이를 구현하기 위해 String에서도 format() 메소드를 사용할 수 있습니다.
import java.util.Scanner;
public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double num = scan.nextDouble(); String a = String.format("%.2f", num); System.out.println(a); } }로그인 후 복사//printf 형식 출력:
//System.out.printf("%2f", num);
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); String[] num = str.split("[;,]"); String a = String.format("%.2f", Double.parseDouble((num[1]))); String b = String.format("%.2f", Double.parseDouble((num[2]))); String c = String.format("%.2f", Double.parseDouble((num[3]))); System.out.println("The each subject score of No. " + num[0] + " is " + a + ", " + b + ", " + c + "."); } }
C 언어에는 다중 입력을 반복하는 두 가지 간단한 방법이 있습니다:
while(scanf("%d", &n ) ! = EOF)
while(~scanf("%d", &n) )
Java에는 간단한 방법도 있습니다:
while(scan.hasNext())
단일 문자를 여러 그룹으로 입력할 경우 문자형으로 변환하려면 문자열 형식으로 입력해야 한다는 점에 유의해야 합니다.
입력은 C언어와 유사합니다. 그러나 문자열과 같은 입력은 C 언어에서 포인터 유형이라는 점에 유의해야 하며, Java에서는 자체 문자열 유형이 있으므로 포인터 형식을 학습하기 전에 각 문자를 루프에 입력할 수 있는 C 언어와는 다릅니다. 문자열.
import java.util.Scanner;
public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] arr = new int[3];//输入3个 for(int i = 0; i < arr.length; i++) { arr[i] = scan.nextInt(); } for(int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } }로그인 후 복사
배열에서 toString() 메서드를 사용하세요.
import java.util.Scanner;
import java.util.Arrays;
public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] arr = new int[3];//输入3个 for(int i = 0; i < arr.length; i++) { arr[i] = scan.nextInt(); } System.out.println(Arrays.toString(arr)); } }로그인 후 복사
1, 2, 3을 입력하면 [1,2,3]이 표시됩니다. 때때로 OJ 질문의 형식은 1 2 3입니다. [1,2,3] 형식도 전달할 수 있습니다.
대부분의 입력이 문자열 유형으로 변환되기 때문입니다. 따라서 문자열의 경우 분할된 문자열을 정수, 부동 소수점 유형, 배열 등으로 변환하는 등 많은 변환 작업이 필요합니다.
int a = Integer.parseInt(str[0]);//str[0]이 '를 분할한 후 한 문자라고 가정 1'
int num = 10;
//방법 1
String str1 = num + "";//""는 빈 문자열을 의미하며 Java에서는 다른 Null을 의미합니다.
// 방법 2
String str2 = String.valueOf(num);
import java.util.Scanner;
import java.util. 공개 수업 메인 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
// 方法1
new String(arr);
//方法2
String.copyValueOf(arr);
描述:写一个函数,输入一个字符串,实现字符串的逆置。代码如下:
import java.util.Scanner; public class Main { public static String my_reverse(String str) { int left = 0; int right = str.length() - 1; char[] arr = str.toCharArray(); while(left < right) { char tmp = 0; tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; left++; right--; } return new String(arr); } public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.next(); String ret = my_reverse(str); System.out.println(ret); } }
结果如下:
用Scanner进行输入是比较慢的,在这里介绍一个新的输入输出的函数。它们相比起来,优点是速度比较快,缺点可能就是太长了,打字很费劲。
import java.io.*; //省略了Main public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(bf.readLine()); System.out.println(a); double b = Double.parseDouble(bf.readLine()); System.out.println(b); char c = bf.readLine().charAt(0); System.out.println(c); char d = (char)bf.read();//都可以,但是这个不能和多组输入连用,原因是它保留了换行。 System.out.println(d); System.out.println("------"); String str = null; //多组输入 while((str = bf.readLine()) != null) { char ch = str.charAt(0);//其他的类似 System.out.println(ch); } }
推荐学习:《java学习教程》
위 내용은 Java에서 일반적인 데이터 유형의 입력과 출력에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!