java输入空行结束问题

目录
  • java输入空行结束
    • 最近两次笔试都被这一个问题困扰
  • java输入数据,空格继续,回车结束输入
    • 普通版
    • 升级版

java输入空行结束

最近两次笔试都被这一个问题困扰

如何在输入空行后停止输入,尝试了各种方法,以下是可以实现该目的的代码:

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

以上代码第一处判断条件可以替换为in.hasNextLine(),但是不可以是in.hasNext().第二处判断条件可以是s.isEmpty(),也可以是s.length == 0。

我查找资料发现:

next()与nextLine有以下区别:

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。

简单地说,next方法不能得到带空格的字符串。

而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

java输入数据,空格继续,回车结束输入

普通版

可输入,可输出。带详细的注释

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

升级版

可重复输入数字,重复输出结果,并带退出功能、

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java实现文本文件删除空行的示例分享

    java删除文本文件空行 复制代码 代码如下: import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

  • java去掉文本中多余的空格与空行实例代码

    前言 最近因为工作的需要,在开发一个小型的圈子系统.功能类似一个简化的微博.用户可以在圈子里发帖子,回复帖子,点赞等等.项目上线不久就发现有很多用户在圈子里发广告,手段之丰富令人叹为观止啊.产品大哥昨天突然跑过来跟我说:现在圈子里有很多广告,而且发广告的人为了吸引别人的注意力经常会发出很多带有很多空行和空格的帖子跟回复.这样一个帖子就会沾满屏幕,十分影响使用.产品大哥要求我立即开发一套过滤逻辑,删除多余的空格和帖子,下面话不多说了,来一起看看详细的介绍: 需求 按照如下要求处理字符串 字符串中连

  • java 取出文本文件中空行的实例代码

    复制代码 代码如下: import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader; public cl

  • java输入空行结束问题

    目录 java输入空行结束 最近两次笔试都被这一个问题困扰 java输入数据,空格继续,回车结束输入 普通版 升级版 java输入空行结束 最近两次笔试都被这一个问题困扰 如何在输入空行后停止输入,尝试了各种方法,以下是可以实现该目的的代码: public static void main(String[] args) { Scanner in = new Scanner(System.in); while(true){//第一处 String s = in.nextLine(); if(s.e

  • Java 输入多行字符串或者多个int数值的方法

    控制台输入 以下输入方法用于在控制台中进行输入,当输入当个换行符时,结束输入.但不适合在做算法题目是使用,可能是因为算法题目中用的是流的方式进行输入,最后不会输入多一个换行符,因而无法正确的结束输入而导致答案错误. import java.util.Scanner; public class Main { public static void main(String[] args) { inputStr(); inputInteger(); inputIntInLine(); } //每行输入一

  • java输入多个数据(不确定),排序,并求最大值的方法

    如下所示: package exercise03_jdknews; import java.util.Arrays; import java.util.Scanner; import java.util.Vector; /** * 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 * @author lgt * */ public class MaxNuber { public static void main(String[] args) { //输入 Scanner sc =

  • Java输入/输出流体系详解

    在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流:按字符读取. 字符流读取方便,字节流功能强大,当不能用字符流时,可以用字节流. 字节流基类:InputStream.OutputStream InputStream方法: OutputStream方法: 字符流基类:Reader.Writer Reader方法: Writer方法: 2.输入输出流体

  • Java创建与结束线程代码示例

    本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程同步.调度.线程池等内容将会在后续章节中逐步深入. 创建线程 创建普通线程有两种方式,继承Thread类或实现Runnable接口.示例如下. 方法1:继承Thread类 创建方法示例: public class MyThread1 extends Thread { @Override public void run() { //TODO Auto-generated method stub supe

  • java 输入一个数字,反转输出这个数字的值(实现方法)

    如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num=sc.nextInt(); int result=0;//存反转的数字 while(true) { int n=num%10

  • Java输入输出流实例详解

    本文实例讲述了Java输入输出流.分享给大家供大家参考,具体如下: 字节输出流,输出到文件中(写) OutputStream抽象类 选好文件 复制代码 代码如下: File file = new File("E:" + File.separator + "myFile" + File.separator + "test" + File.separator + "123.txt"); 子类实例化,需要抛异常 稍后传输的数据覆盖原

  • java 输入3个数a,b,c,按大小顺序输出的实例讲解

    题目: 输入3个数a,b,c,按大小顺序输出. 代码: import java.util.Scanner; public class lianxi34 { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入3个整数:"); int a = s.nextInt(); int b = s.nextInt(); int c = s.nextIn

  • java输入字符串并将每个字符输出的方法

    如下所示: import java.util.Scanner; public class Main{ public static void main(String[] args){ int i,len; String str; Scanner in = new Scanner(System.in); str = in.next(); len = str.length(); //求出长度 for (i=0; i<len; i++){ System.out.println(str.charAt(i)

  • java根据开始时间结束时间计算中间间隔日期的实例代码

    具体代码如下所述: import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class Test { public static List<String> findDates(String stime,

随机推荐