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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux netstat -an命令,linux 命令之netstat[通俗易懂]

    linux netstat -an命令,linux 命令之netstat[通俗易懂]在linux中netstat命令的作用是查看TCP/IP网络当前所开放端口,所对应的本地和外地端口信息。netstat命令的格式netstat[-a][-e][-n][-o][-pProtocol][-r][-s][Interval]各参数选项的含义a显示所有socket,包括正在监听的。-c每隔1秒就重新显示一遍,直到用户中断它。-i显示所有网络接口的信息,格式“netstat-i”…

    2022年8月30日
    1
  • 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)「建议收藏」

    利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)「建议收藏」利用MATLAB2016a进行BP神经网络的预测(含有神经网络工具箱)   最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型、时间序列模型,GM(1,1)模型,可是自己在结合实际的工作内容,发现这几种模型预测的精度不是很高,于是再在网上进行搜索,发现神经网络模型可以来预测,并且有很多是结合时间序列或者SVM(支持向量机)等组合模型来

    2022年6月20日
    60
  • html5 canvas雨点打到窗玻璃动画

    html5canvas雨点打到窗玻璃动画HTML5下雨效果效果预览:http://hovertree.com/texiao/html5/4.htm以下是代码:1234567HTML5

    2021年12月21日
    40
  • pycharm基本操作_pycharm用法

    pycharm基本操作_pycharm用法0前言1官方快捷键2自定义快捷键0前言1官方快捷键Ctrl+快捷键说明Ctrl+鼠标左键/B点击变量应用处,到达变量定义处点击变量定义处,显示变量应用列表Ctrl+C/X/V复制/剪切/粘贴Ctrl+D现场复制粘贴选中的区域或当前行Ctrl+F/R开启查找/替换功能,开启时自动填写选中的字符Ctrl+H显示当前class的层次结构Ctrl+S全部保存Ctrl+W扩大光标选中范围Ctrl.

    2022年8月28日
    0
  • 部署Azure Pack 前期准备

    部署Azure Pack 前期准备

    2022年2月21日
    36
  • javaweb酒店管理系统设计与实现_酒店管理信息系统分析与设计

    javaweb酒店管理系统设计与实现_酒店管理信息系统分析与设计随着人们生活质量的提高和对网络的依赖,对酒店的需求量越来越大并且更需要网络来实现预订酒店等功能,它作为一个服务性行业,从客房的营销即客人的预定开始,到入住登记直到最后退房结账,整个过程应该能够体现以宾客为中心,提供快捷方便服务,给宾客感受一种顾客至上的享受,提高管理水平,简化各种复杂操作,在最短时间内完成酒店业务规范操作,这样才能令旅客舒适难忘。目前,我国酒店服务业信息化管理的进程缓慢,跟国外的酒店相比管理依然落后。在激烈的酒店业竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?这就需要提供最好的服务

    2022年9月14日
    0

发表回复

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

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