关于Scanner的那些方法,next,nextLine,hasNext!!!

本文主要总结java.util.Scanner类的一些方法,比如next,hasNext,nextLine!

hasNext方法

因为后面要用到hasNext方法,所以先说这个,hasNext方法用于判断后续是否还有输入。
示例:

package ddd;
import java.util.Scanner;

public class Test {
    
    
public static void main(String[] args) {
    
    
	Scanner sc=new Scanner(System.in);
	while(sc.hasNext()){
    
    
	String	str=sc.next();
	System.out.println("输出:"+str);
	}
}
}

如果不用hasNext()方法,该代码只能这样输入一次,后续不能再输入。
在这里插入图片描述
使用hasNext()方法之后:
在这里插入图片描述
可以不断的进行输入,相当于是一个输入的循环,如果还有输入,那么就再执行一次while里面的内容。

next方法

next方法表示从字符串的首位(非空格,非字符)开始扫描,遇到第一个分隔符(空格或者‘\n’)结束,它会把空格堪称字符串间隔。
示例:

package ddd;
import java.util.Scanner;

public class Test {
    
    
public static void main(String[] args) {
    
    
	Scanner sc=new Scanner(System.in);
	while(sc.hasNext()){
    
    
	String	str=sc.next();
	System.out.println("输出:"+str);
	}
}
}

1.输入aaa bb
在这里插入图片描述
可以看到,这里把字符串看成了分隔符,只取了aaa。因为这里用到了hasNext,所以会输出两次,若不用,只输出aaa或者bb。
2.输入 aaa bb(注意前面有空格)
在这里插入图片描述
输入结果与上面相同。它忽略了首行的空格从字符开始扫描。

nextLine方法

把空格也当成字符串的一部分去扫描,知道遇到回车就停止扫描,示例如下

package ddd;
import java.util.Scanner;

public class Test {
    
    
public static void main(String[] args) {
    
    
	Scanner sc=new Scanner(System.in);
	while(sc.hasNext()){
    
    
	String	str=sc.nextLine();
	System.out.println("输出:"+str);
	}
}
}

输入hello world和 dsad(前面有空格)
在这里插入图片描述
可以看到,它对空格没有进行处理,直接与字符串一起打印出来。这里要注意,我们输入hello world其实是hello world ‘\n’后面会认为有回车。

综上所述,引出来一个常见的编程题:
计算字符串最后一个单词的长度,单词以空格隔开。
输入:hello world
输出:5

package ddd;
import java.util.Scanner;

public class Main{
    
    
    public static int lengthOfLast(String str) {
    
    
        String[] s =str.split(" ");//用空格对字符串进行分割
        return s[s.length-1].length();//返回数组最后一个字符串的长度
    }
    public static void main(String[] args) {
    
    
    	 Scanner scan = new Scanner(System.in);//获取输入数据
         while(scan.hasNext()){
    
    //查看是否还有输入,题目没要求的话这个不要也没关系
             String str = scan.nextLine();//获取包含空格的字符串
             System.out.println(lengthOfLast(str));//打印
         }
	}
}

ok啦,以上就是对Scanner类进行的一个讲解以及实例编程题,一般可以延申扩展,如果要求返回最后一个单词也是一样的,把数组长度换成值就可以,返回第一个单词同理。(本代码会对最后的空格不进行处理,就是就算最后一个单词后面还有空格也不会算入计数里)

猜你喜欢

转载自blog.csdn.net/weixin_43909848/article/details/105618152