>  기사  >  Java  >  Java에서 일반적인 데이터 유형의 입력과 출력에 대해 이야기해 보겠습니다.

Java에서 일반적인 데이터 유형의 입력과 출력에 대해 이야기해 보겠습니다.

WBOY
WBOY앞으로
2022-03-24 18:59:482242검색

이 글은 일반적인 데이터 유형의 입력 및 출력 관련 문제를 주로 소개하는 java에 대한 관련 지식을 제공합니다. 예제를 사용하여 이러한 일반적인 데이터 유형의 입력 및 출력 문제를 해결하는 방법을 살펴보겠습니다. .

Java에서 일반적인 데이터 유형의 입력과 출력에 대해 이야기해 보겠습니다.

추천 학습: "java tutorial"

C 언어를 배우고 Java로 전환한 후 첫 번째 느낌은 Java의 작성 방법이 매우 복잡하다는 것입니다. 일반적으로 사용되는 데이터 유형의 출력이 매우 편리합니다. C 언어에서는 scanf 함수를 사용하면 대부분의 형식을 쉽게 입력할 수 있지만 Java에서는 scanf와 유사한 명령문이 없습니다.

이 글은 나의 입력과 출력 습관과 ​​질문을 했던 기록을 결합하여 정수, 정수이지만 분리된 매개변수와 같은 다양한 유형에 대한 요약을 만듭니다... 다음 지침에서 기본 클래스는 모두 Main 클래스이며 입력에는 Scanner를 사용합니다. 각 입력 또는 출력에는 여러 메서드가 있을 수 있으며, 저는 더 간단한 메서드만 작성했습니다.

1. Char 유형

여기서 언급하는 char 유형은 한 문자만 입력하는 경우를 말합니다.

1.1 입력 형식:

<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

IOException

{

char

ch = (char)System.in.read();// <1>

System.out.println((int)ch); code> code><p></p> <code> }

}

참고: IOException과 함께 사용해야 합니다. <1>에서 System.in은 표준 입력 스트림(가장 일반적으로 키보드)으로부터 입력을 받고 rand() 메소드는 이 스트림에서 입력 내용을 읽습니다. <1>의 입력 결과는 int 유형이므로 char 유형으로 변환해야 합니다.


1.2 예시

2, int 유형

1.1 단순 int 형식 입력:

이는 각 줄에 하나의 int 형식 입력만 있는 상황을 나타냅니다. 예를 들어, 각 줄에는 하나의 정수 유형만 입력됩니다.

import java.util.Scanner;

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);
}
}

2.2 예를 들어보세요

3.1 복소 정수 형식의 입력

a=3, b=2 입력과 유사하며 방법은 설명한 상황과 동일합니다 2.1에서도 똑같습니다. 여기서는 바로 예제로 넘어갑니다.

3.2 예를 들어보세요

long 유형과 int 유형의 입력은 유사하므로 다시 반복되지 않습니다.

3. Double 유형

Java에서는 float 유형보다 double 유형을 더 자주 사용해야 합니다.

부동 소수점 유형의 가장 중요한 점은 소수점 이하 두 자리를 유지하는 등 형식화된 출력입니다. Java에는 C 언어와 유사한 printf 메소드가 있으며 이를 구현하기 위해 String에서도 format() 메소드를 사용할 수 있습니다.

1.1 double은 두 자리 형식 출력을 유지합니다.

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);

1.2 예를 들어,

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 + ".");
    }
}

4, 다중 입력

1.1 입력 형식

C 언어에는 다중 입력을 반복하는 두 가지 간단한 방법이 있습니다:

while(scanf("%d", &n ) ! = EOF)

while(~scanf("%d", &n) )

Java에는 간단한 방법도 있습니다:

while(scan.hasNext())

1.2 예제 노트

단일 문자를 여러 그룹으로 입력할 경우 문자형으로 변환하려면 문자열 형식으로 입력해야 한다는 점에 유의해야 합니다.

5. Array

입력은 C언어와 유사합니다. 그러나 문자열과 같은 입력은 C 언어에서 포인터 유형이라는 점에 유의해야 하며, Java에서는 자체 문자열 유형이 있으므로 포인터 형식을 학습하기 전에 각 문자를 루프에 입력할 수 있는 C 언어와는 다릅니다. 문자열.

1.1 배열 입력 형식:

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] + " ");
       }
  }
}

2.1 배열을 문자열로 변환

배열에서 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] 형식도 전달할 수 있습니다.

6. 문자열

대부분의 입력이 문자열 유형으로 변환되기 때문입니다. 따라서 문자열의 경우 분할된 문자열을 정수, 부동 소수점 유형, 배열 등으로 변환하는 등 많은 변환 작업이 필요합니다.

1.1 문자열을 정수 또는 부동 소수점 유형으로 변환(정수를 예로 사용)

int a = Integer.parseInt(str[0]);//str[0]이 '를 분할한 후 한 문자라고 가정 1'

1.2 정수 및 부동 소수점 유형을 문자열로 변환

int num = 10;

//방법 1

String str1 = num + "";//""는 빈 문자열을 의미하며 Java에서는 다른 Null을 의미합니다.

// 방법 2

String str2 = String.valueOf(num);

2.1 문자열을 문자 배열로 변환

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] + " ");

        }

      }

}

2.2  字符数组转换成字符串

// 方法1

new String(arr);

//方法2

String.copyValueOf(arr); 

3  举例说明

描述:写一个函数,输入一个字符串,实现字符串的逆置。代码如下:

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);
    }
}

 结果如下:


7、快速输入

        用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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제