当前位置: 首页 > news >正文

Java的输入 Scanner in=new Scanner(System.in);

java和c++还是有好多不同的地方,需要从头开始认认真真地学

文章目录

    • 输入数字
        • 输入double
        • 输入整型
    • 输入字符串
        • 判断2个字符串是否相等
        • Java的字符串要用""双引号引起来,而不是''单引号
    • 输入一维数组
    • 输入二维数组

输入数字

输入double

import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        double d=in.nextDouble();
        System.out.println(d);
    }
}

在这里插入图片描述

输入整型

import java.io.*;
import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();   //调用in的nextInt函数来读入整型
        int b = in.nextInt();
        System.out.print(a+b+" ");
        System.out.print(a*b+" ");
    }
}

在上面的程序中可以看到一共调用了2次nextInt()函数,所以键盘会等待你输入2个整数。

在这里插入图片描述

如果输入多个整数,它只会取前2个数字。

在这里插入图片描述

注意:in.nextInt() 函数只能接受 int 型,不能输入double或者long等其他类型的数字,否则会报错。

对于其他输入的函数同样,nextDouble(), nextLong(), nextShort(), nextByte(), 都只能输入对应类型的数据,输入其他类型会报错。

输入字符串

输入字符串时要注意,因为Java是大小写严格的,所以String的S必须大写,虽然C++中string是小写的。

import java.io.*;
import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        String s=in.nextLine();     //用 in 的 nextLine() 函数读入字符串
        System.out.println(s);
    }
}

运行结果:

在这里插入图片描述

判断2个字符串是否相等

String中有一个函数就是判断是否和另一个字符串相等 equals() ,括号中写入要比较的字符串

import java.io.*;
import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        String s=in.nextLine();
        if(s.equals("fantastic"))  //使用了字符串的函数 equals() 来判断
            System.out.println("极好的,了不起的");
    }
}

运行结果:

在这里插入图片描述

(每次举例子不知道举什么,突然感觉举单词还不错,还可以加深印象,不错不错,一举两得)

Java的字符串要用""双引号引起来,而不是’'单引号

在Java中用英文下的单引号引起来的是一个字符,而不是字符串。
而且用单引号引起来的只能有一个字符,如果有多个字符,就会报错(只看红色的就可以)

在这里插入图片描述
翻译过来就是:字符字面上有太多字符。
但是如果用双引号引起来多个字符是不会报错的。

判断2个字符是否相等可以用==来判断
在这里插入图片描述

输入一维数组

import java.io.*;
import java.util.Scanner;//输入头文件
import java.util.Arrays; //引入数组类

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        int a[]=new int [6];
        for(int i=0;i<6;++i)
            a[i]=in.nextInt();  //依次输入数据
        Arrays.sort(a);   //用数组的函数对数组排序,从小到大
        System.out.println(a[5]+" "+a[0]);//输出数组的最大值和最小值
    }
}

运行结果:

在这里插入图片描述

输入二维数组

代码:(我个人感觉还是看代码来的快,理解的快,一看就能很明白啊,一大堆解释对我来说不能很好的理解,还是看实例快一些)

import java.io.*;
import java.util.Scanner;//输入头文件
import java.util.Arrays;//引入数组类

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();//输入行数和列数
        int m=in.nextInt();
        int a[][]=new int[n][m];
        in.nextLine();  //用来读掉回车前的所有字符,不将他们包括在数组的输入中
        for(int i=0;i<a.length;++i){
            for(int j=0;j<a[i].length;++j)
                a[i][j]=in.nextInt();//输入每个元素
        }
        for(int i=0;i<a.length;++i){
            for(int j=0;j<a[i].length;++j)
                System.out.print(a[i][j]+" ");
            System.out.println();
        }
    }
}

看一下运行结果:
2和3分别对应的是n和m,69559是我多输入的,主要是判断in.nextLint()是否可以读掉回车前的所有空格,确实读掉了,69559没有算在数组中的元素。

在这里插入图片描述

如果我们不写 in.nextLint() ,再这样输入,结果如下:

在这里插入图片描述
它没有忽略699559 (这里举的数不一样,但是没关系,道理一样),而最后一个5已经超出二维数组的范围了,所以没有读到。

Java的数组中都有一个 length() 函数,可以直接求出数组中元素的个数,这在C++中是没有的,有这个会方便一些。



相关文章:

  • 接口请求返回状态码
  • Cocos Creator游戏引擎
  • [静态时序分析简明教程(一)] 绪论
  • ADU87、DCB20X-E等设备以RTSP方式添加第三方相机或录像机教程
  • 计算机网络常见面试题汇总(建议收藏)
  • 【从零带你玩转Linux】Linux环境搭建
  • AMBA总线相关知识记录
  • vscode快速安装教程
  • 34、Java 中有了基本数据类型,为什么还需要有包装类型?包装类型是啥?
  • Spring In Action 5 学习笔记 chapter8 RabbitMQ(AMQP)要点
  • K8s有状态应用(StatefulSet)之Mysql集群
  • 原生table动态数据,通过jQuery实现相同数据时候跨行合并
  • 祖国啊,情深难载
  • 纯JavaScript实现表白代码
  • SpringCloudGateway 学习笔记 - 搭建项目
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • flask接收请求并推入栈
  • Linux中的硬链接与软链接
  • Making An Indicator With Pure CSS
  • ng6--错误信息小结(持续更新)
  • sessionStorage和localStorage
  • spark本地环境的搭建到运行第一个spark程序
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue自定义指令实现v-tap插件
  • windows下使用nginx调试简介
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 实现简单的正则表达式引擎
  • 事件委托的小应用
  • 通过npm或yarn自动生成vue组件
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • scrapy中间件源码分析及常用中间件大全
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #《AI中文版》V3 第 1 章 概述
  • #Linux(权限管理)
  • (1)虚拟机的安装与使用,linux系统安装
  • (2022 CVPR) Unbiased Teacher v2
  • (floyd+补集) poj 3275
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (solr系列:一)使用tomcat部署solr服务
  • (vue)页面文件上传获取:action地址
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (蓝桥杯每日一题)love
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)VC++中ondraw在什么时候调用的
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ./configure、make、make install 命令
  • .gitignore文件_Git:.gitignore
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core Swagger 过滤部分Api
  • .net 简单实现MD5