Maison  >  Article  >  Java  >  Comment résoudre le problème de la fin de la ligne vide en Java

Comment résoudre le problème de la fin de la ligne vide en Java

PHPz
PHPzavant
2023-05-15 13:10:061471parcourir

javaEntrez une ligne vide pour terminer

Les deux derniers tests écrits ont été perturbés par ce problème

Comment arrêter de taper après avoir saisi une ligne vide, j'ai essayé diverses méthodes, Voici le code qui peut atteindre cet objectif :

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(true){//第一处
String s = in.nextLine();
if(s.equals(""))//第二处
break;
System.out.println(s);
}
System.out.println("Over Input");
}

La première condition de jugement du code ci-dessus peut être remplacée par in.hasNextLine(), mais elle ne peut pas l'être dans.hasNext() .La deuxième condition de jugement peut être C'est s.isEmpty() ou s.length == 0.

J'ai cherché des informations et j'ai trouvé :

next() présente les différences suivantes avec nextLine :

next () doit être La saisie ne peut être terminée qu'après avoir lu les caractères valides. La méthode next() supprimera automatiquement les caractères de fin tels que la barre d'espace, la touche Tab ou la touche Entrée rencontrés avant de saisir les caractères valides uniquement après les caractères valides. sont saisis, la méthode next () considérera la barre d'espace, la touche Tab ou la touche Entrée saisies ultérieurement comme séparateur ou terminateur.

En termes simples, la méthode suivante ne peut pas obtenir une chaîne avec des espaces.

Le caractère de fin de la méthode nextLine() est simplement la touche Entrée, c'est-à-dire que la méthode nextLine() renvoie tous les caractères avant la touche Entrée et peut obtenir une chaîne avec des espaces.

données d'entrée Java, espace pour continuer, appuyez sur Entrée pour terminer la saisie

Version normale

Peut être une entrée et une sortie. Avec des commentaires détaillés

import java.util.Scanner;
public class SumDemo {
    public static void main(String[] args) {
        System.out.println("请输入两个数字,中间用空格隔开,例如5 5");
        //得到一个扫描器,用来扫描 系统的输入
        Scanner input = new Scanner(System.in);
        //申明一个临时的字符串变量temp,用来保存 扫描器读取的一行;
        String temp = input.nextLine();
        //temp字符串首先trim()一下,就是去掉两边的空白,
        //因为有的人可能输入的是 空格5空格5空格回车。.
        //所以去掉两边的空格变成 5空格5回车 就符合要求了
        //split(" ")方法表示,用空格去切割字符串,返回的结果是一个字符串数组
        String[] ss = temp.trim().split(" ");
        //从两个字符串中解析得到两个数字,并求和
        int num1 = Integer.parseInt(ss[0]);
        int num2 = Integer.parseInt(ss[1]);
        int sum = num1+num2;
        //输出结果
        System.out.println("输入的数字是"+num1+" "+num2+"两数的和是:"+sum);
        //养成良好的习惯,打开了的资源要记得关闭,我们打开了扫描器,就要关闭扫描器
        input.close();
    }
}

Version améliorée

Vous pouvez saisir des chiffres à plusieurs reprises, afficher les résultats à plusieurs reprises et disposer d'une fonction de sortie,

import java.util.Scanner;
public class SumTest {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while(true){
            System.out.println("如果输入exit,那么退出。输入两个数字,用空格隔开");
            String temp = input.nextLine();
            if(temp.trim().equals("exit")){
                break;
            }
            String[] ss = temp.trim().split(" ");
            int num1 = Integer.parseInt(ss[0]);
            int num2 = Integer.parseInt(ss[1]);
            int sum = num1+num2;
            System.out.println("输入的数字是"+num1+" "+num2+"两数的和是:"+sum);
        }
        input.close();
    }
}

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