java之Scanner详解「建议收藏」

java之Scanner详解「建议收藏」1.包:importjava.util.Scanner2.使用方法:Scannerreader=newScanner(System.in);  然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:   nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),next

大家好,又见面了,我是你们的朋友全栈君。

刷题过程中遇到数据的读入扫描,发现网上资料比较杂,总结下。

1.包:

import java.util.Scanner

2.使用方法:

Scanner reader=new Scanner(System.in);    

然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:

    

nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShort()    

注:上面由next()方法转化而来,空格,TAB快结束

上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.

例如,拥护在键盘输入  

12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文  

本行并且回车,该方法得到一个String类型的数据。相比nextLine()回车确认,按照行读为string

3.实例

//逐行扫描文件,并逐行输出
public static void main(String[] args) throws FileNotFoundException { 
    InputStream in = new FileInputStream(new File("C:\\AutoSubmit.java")); 
    Scanner s = new Scanner(in); 
    while(s.hasNextLine()){ 
            System.out.println(s.nextLine()); 
    } 
}


//all out
import java.util.Scanner;

public class testNextline { 
        public static void main(String[] args) { 
                Scanner s = new Scanner(System.in); 
                System.out.println("请输入字符串:"); 
                while (true) { 
                        String line = s.nextLine(); 
                        if (line.equals("exit")) break; 
                        System.out.println(">>>" + line); 
                } 
        } 
}

//next(), <span style="font-size:18px;">nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShort()  //用法类似</span>
import java.util.Scanner;

public class hasNextInt {

    public static void main(String[] args) {
        Scanner in =  new Scanner(System.in);
        System.out.println("请输入一个整数");
        while(in.hasNextInt()){
            int num = in.nextInt();
            System.out.println("数字"+num);//输入123 12只能读到123
            System.out.println("请输入一个字符串");
            String str = in.next();//输入 adc cv只能读到adc
           
            System.out.println("字符串"+str);
        }
    }
}


4.其他相关方法

下面这几个相对实用:
 
delimiter() 
          返回此 Scanner 当前正在用于匹配分隔符的 Pattern。

 public static void main(String[] args) throws FileNotFoundException { 
                Scanner s = new Scanner("123 asda bf 12 123 nh l,sf.fl ...adafafa    lda"); 
//                s.useDelimiter(" |,|\\."); 
                while (s.hasNext()) { 
                        System.out.println(s.next()); 
                } 
        }

123
asda
bf
12
123
nh
l,sf.fl
...adafafa
lda


hasNext() 
          判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)
hasNextLine() 
          如果在此扫描器的输入中存在另一行,则返回 true。
next() 
          查找并返回来自此扫描器的下一个完整标记(String)。
nextLine() 
          此扫描器执行当前行,并返回跳过的输入信息。
5. 一个读写实例
import java.util.Scanner;
public class test{
    public static int getCount(String str,char c){
        int count = 0;
        if(str != null && str.length() > 0){
            for(int i = 0;i < str.length();i++){
                if(c == str.charAt(i)){
                    count++;
                }
            }
        }else{
            count = 0;
        }
        return count;
    }
     
    public static void main(String[] args){
           Scanner s = new Scanner(System.in);
            String str = s.next();
            char c = s.next().charAt(0);
            int i = getCount(str,c);
            System.out.println(i);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162049.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 搭建rsyslog日志服务器_syslog服务器

    搭建rsyslog日志服务器_syslog服务器文章目录1.rsyslog介绍2.实验目的3.实验环境4.配置服务端5.配置客户端6.在服务端验证效果1.rsyslog介绍  rsyslog是一个快速处理收集系统日志的开源程序,提供了高性能、安全功能和模块化设计。rsyslog是syslog的升级版,它将多种来源输入输出转换结果到目的地,rsyslog被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。  rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsysl

    2022年9月25日
    5
  • system.Exception:端口已被占用1080「建议收藏」

    system.Exception:端口已被占用1080「建议收藏」找出是哪个程序占用了1080端口打开cmd.exe,输入命令:netstat-aon|findstr"1080"1最后一列就是PID了,我的是3104. 要想知道此PID对应什么程序,可以继续输入:tasklist|findstr"4568"1打开任务管理器,在进程里面找下wpscloudsvr.exe,或者在服务里面找PID为3104。…

    2025年9月30日
    2
  • pycharm怎么配置tensorflow环境_linux系统物理机安装步骤

    pycharm怎么配置tensorflow环境_linux系统物理机安装步骤Tensorflow详细安装步骤及PyCharm配置Tensorflow是谷歌开源的深度学习框架,分为两个版本,GPU和CPU,主要的区别在于计算速度,GPU版本要比CPU计算速度更快,适用于处理大量复杂的数据,但需要计算机配置独立NVIDIA显卡。CPU版本没有显卡要求,安装更简单,合适新手小白和学生党,下面介绍CPU版本Tensorflow的详细安装步骤系统环境:Windows10第一步:安装Anaconda两种方式:直接在Anaconda官方网站下载,但速度很慢;建议第二种,选择镜像网站下载,

    2022年8月28日
    6
  • 如何配置tomcat环境变量

    如何配置tomcat环境变量首先下载tomcat,并且解压到目录:注意:2,3步的变量值要到下图这一步即,bin的上一级目录不包含bin1.第一步鼠标右键计算机-&gt;属性-&gt;高级系统设置,进去之后,点击环境变量,如下图所示2.第二步开始配置tomcat的环境变量,新建系统变量名CATALINA_BASE,值tomcat的安装路径,如下图所示:3.第三步新建系统变量CA…

    2022年6月4日
    30
  • android toast防重_如何解决android Toast重复显示

    android toast防重_如何解决android Toast重复显示Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示。先给大家分享下我的解决思路:不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast,这个Toast不为null的时候才去make,否则直接setText.为了按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的T…

    2025年11月7日
    6
  • Java中Scanner对象中hasNext()与next()方法浅析

    Java中Scanner对象中hasNext()与next()方法浅析相信很多像我一样在刚刚接触Java的时候都有遇到这样的问题:我们可能希望的是:先输出“请输入:”然后我们就可以在控制台输入一个字符串或数字。但是,事实却是:控制台要我们先输入,输入后才显示“请输入:”。这是怎么回事?原因:首先,sc.hasNext()和sc.next()都可以用来输入我们,可以发现,hasNext()返回的是boolean类型而next…

    2022年7月20日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号