Maison  >  Article  >  Java  >  Parlons de l'entrée et de la sortie des types de données courants en Java

Parlons de l'entrée et de la sortie des types de données courants en Java

WBOY
WBOYavant
2022-03-24 18:59:482240parcourir

Cet article vous apporte des connaissances pertinentes sur java, qui présente principalement les problèmes d'entrée et de sortie des types de données courants. Prenons un exemple pour voir comment résoudre les problèmes d'entrée et de sortie de ces types de données courants. .

Parlons de l'entrée et de la sortie des types de données courants en Java

Étude recommandée : "Tutoriel Java"

Après avoir appris le langage C et être passé à Java, le premier sentiment est que la méthode d'écriture de Java est très compliquée. En même temps, il n'y a pas de C dans l'entrée et. la sortie des types de données couramment utilisés est si pratique. En langage C, l'utilisation de la fonction scanf permet de saisir facilement la plupart des formats, mais pas en Java. Il n'existe pas d'instruction similaire à scanf en Java.

Cet article combine mes habitudes d'entrée et de sortie et mes enregistrements de questions pour faire un résumé de ces différents types, tels que les entiers, les entiers mais les paramètres séparés... Dans la description suivante, les classes principales sont toutes des classes principales et nous utilisons Scanner pour la saisie. Chaque entrée ou sortie peut avoir plusieurs méthodes, et je n'ai écrit que la méthode la plus simple.

1. Type de caractère

Le type de caractère mentionné ici fait référence au cas où un seul caractère est saisi.

1.1 Format d'entrée :

<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

;//Import package

public class Main {

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

}

Remarque : doit être utilisé avec IOException. Dans <1>, System.in est entré à partir du flux d'entrée standard (le plus souvent le clavier), et la méthode rand() lit le contenu d'entrée à partir de ce flux. Le résultat d'entrée de <1> est de type int et doit être converti en type char.


1.2 Exemple

2, type int

1.1 Entrée au format int simple :

Cela fait référence à la situation où chaque ligne n'a qu'une seule entrée au format int. Par exemple, un seul type entier est saisi dans chaque ligne.

import java.util.Scanner;

public class Main {   public static void main(String[] args) {

                                      int num = scan.        System.out.println(num);     }
}

🎜 1.2 Exemple 🎜🎜 Remarque : Il doit s'agir d'un numéro long, sinon lorsque num est très grand, le résultat sera inexact. 🎜🎜🎜🎜🎜🎜🎜🎜2.1 Saisie au format int avec des espaces : 🎜🎜 similaire à un format comme 23 34. Il y a un espace entre les deux nombres. Pour le moment, l'utilisation de la saisie int seule ne peut pas résoudre le problème. Bien sûr, vous pouvez utiliser deux scan.nextInt() consécutivement pour la saisie. Cependant, nous devons encore changer de perspective à l’heure actuelle. Nous traitons 23 34 dans son ensemble comme une chaîne, puis le divisons au niveau de l'espace en deux chaînes de 23 et 34, puis convertissons ces deux chaînes en nombres entiers. Veuillez consulter le manuel d'aide officiel pour la méthode 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("[ ]");//Divisé en plusieurs morceaux, il y a plusieurs tableaux de chaînes, voici deux Block
        int a = Integer.parseInt(str[0]);
      int b = Integer.parseInt(str[1]);//Et ainsi de suite...
      System.out.println(a + " " + b);
}
}

2.2 Donnez un exemple de

3.1 Saisie d'un format int complexe

Semblable à la saisie de a=3, b=2, la méthode est la même que la situation expliqué en 2.1 C'est pareil. Ici, nous passons directement à l'exemple.

3.2 Donnez un exemple

Les entrées de type long et de type int sont similaires et ne seront plus répétées.

3. Type double

En Java, le type double doit être utilisé plus souvent que le type float.

L'essentiel du type à virgule flottante est sa sortie formatée, par exemple en conservant deux décimales. En Java, il existe une méthode printf similaire à celle du langage C, et nous pouvons également utiliser la méthode format() dans String pour l'implémenter.

1.1 double conserve la sortie au format à deux chiffres

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 sortie au format :

//System.out.printf("%2f", num);

1.2 Par exemple,

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, entrées multiples

1.1 Format d'entrée

En langage C, il existe deux façons plus simples de boucler plusieurs entrées :

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

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

En Java, il existe aussi un moyen simple :

while(scan.hasNext())

1.2 Exemple de note

Il convient de noter que lorsque plusieurs groupes de caractères uniques sont saisis, ils doivent être saisis au format chaîne pour être convertis en type de caractère.

5. Array

La saisie est similaire à celle du langage C. Cependant, il convient de noter que les entrées telles que les chaînes sont un type de pointeur en langage C. En Java, elles ne peuvent pas être comme le langage C, où vous pouvez saisir chaque caractère dans une boucle avant d'apprendre le formulaire de pointeurs. une chaîne.

1.1 Format d'entrée du tableau :

importer 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 Convertir un tableau en chaîne

Utilisez la méthode toString() dans les tableaux.

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

Entrez 1, 2, 3 et vous verrez [1,2,3]. Parfois, le format des questions du JO est 1 2 3. Le format [1,2,3] peut également passer.

6. String

Puisque la plupart des entrées sont converties en type chaîne. Par conséquent, pour les chaînes, de nombreuses opérations de conversion sont nécessaires, telles que la conversion de la chaîne divisée en entiers, types à virgule flottante, tableaux, etc.

1.1 Convertir une chaîne en type entier ou à virgule flottante (en prenant un entier comme exemple)

int a = Integer.parseInt(str[0]);//Supposons que str[0] est un caractère après la division ' 1'

1.2 Convertir le type entier et à virgule flottante en chaîne

int num = 10;

//Méthode 1

String str1 = num + "";//"" signifie chaîne vide, différente Null en Java

// Méthode 2

String str2 = String.valueOf(num);

2.1 Convertir la chaîne en un tableau de caractères

importer java.util.Scanner;

importer java.util Arrays;

. classe publique Principal {

        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学习教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer