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)
上一篇 2022年7月20日 下午5:36
下一篇 2022年7月20日 下午5:46


相关推荐

  • java编译运行cpp文件

    java编译运行cpp文件try finallongtim 3000 限制的执行时间 毫秒 Stringcmd g cpp oyour app name finallongsta System currentTimeM finalProcess Runtime getRuntime

    2026年3月16日
    1
  • JVM 优化实战[通俗易懂]

    JVM 优化实战[通俗易懂]本文讲解了JVM的内存划分和分配策略,并以截图和脚本展示常用可视化和命令行工具的使用方法,完整演示了JVM优化、内存泄露排查、gc.log分析方法等。作者:王克锋 出处:https://kefeng.wang/2016/11/22/java-jvm/ 版权:自由转载-非商用-非衍生-保持署名,转载请标明作者和出处。1GC相关内存1.1内存划分1.1.1堆(Heap)存放 newM…

    2022年6月9日
    42
  • C++RTSP服务端(附源码)

    C++RTSP服务端(附源码)源代码 demo 已上传到百度网盘 永久生效 代码实现了 rtsp 服务端功能 而且对模块进行了封装 只需要简单的调用 4 个函数就可以 实现服务器的功能 主要是针对 h264 流的封包 本代码完全提取 live555rtsp 代码 并加以修改与封装 我已经封装成 DLL 了 当然一切都提供源吗 先看下接口封装 要是有了这几个接口 你还是不知道怎么用 那我真的没有办法了 取到流 设像头或者文件 你开启服务 等待连接啊 有连接上后 发送你的流啊 你不用怀疑代码有没问

    2026年3月17日
    2
  • 微信小程序 跳转小程序

    微信小程序 跳转小程序微信小程序跳到指定的小程序跳转小程序的官方链接第一种 使用方法 demo 演示第二种 appd id 小程序 appidpath 小程序路径 extra data 跳转小程序携带的参数 version 当 target miniProgram 时有效 要打开的小程序版本 有效值 develop 开发版 trial 体验版 release 正式版 仅在当前小程序为开发版或体验版时此参数有效 如果当前小程序是正式版 则打开的小程序必定是正式版

    2026年3月17日
    1
  • static声明静态外部类_static静态变量的理解

    static声明静态外部类_static静态变量的理解在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。   在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情况下,静态内部类也能够发挥其独特的作用。    一、静态内部类的使用目的。    在定义内部类的时候,可以

    2022年10月11日
    8
  • C#常用 API函数大全[通俗易懂]

    C#常用 API函数大全[通俗易懂]常用WindowsAPI1.API之网络函数WNetAddConnection创建同一个网络资源的永久性连接WNetAddConnection2创建同一个网络资源的连接WNetAddConnection3创建同一个网络资源的连接WNetCancelConnection结束一个网络连接WNetCancelConnection2结束一个网络连接WNetCloseEn

    2025年6月25日
    8

发表回复

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

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