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. .
É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.
Le type de caractère mentionné ici fait référence au cas où un seul caractère est saisi.
<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);
}
;//Import package
}
java.io.IOException
public
class
Main {
public
static
void
main(String[] args)
throws
{
ch = (
char)System.in.read();// <1>
2, type int
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
1.1 Entrée au format int simple :
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);
}
}
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.
Les entrées de type long et de type int sont similaires et ne seront plus répétées.
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.
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); } }Copier après la connexion//printf sortie au format :
//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 + "."); } }
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())
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.
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.
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] + " "); } } }Copier après la connexion
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)); } }Copier après la connexion
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.
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.
int a = Integer.parseInt(str[0]);//Supposons que str[0] est un caractère après la division ' 1'
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);
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] + " ");
}
}
}
// 方法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学习教程》
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!