精华内容
下载资源
问答
  • java从控制台输入
    万次阅读
    2020-09-05 20:00:47
    public class Demo1 {
        public static void main(String[] args) {
        	System.out.println("请输入5个数");
        	Scanner sr = new Scanner(System.in);
        	//这里不需要在写获取,例如写了了一个 int x = sr.nextInt();  当你输出数组的时候就会出现第一个数据没有
        	int arr[] = new int [100];
        	for(int i=0;i<arr.length;i++) {
        		arr[i] = sr.nextInt();
        		System.out.print(arr[i]+" ");
        	}
        }
    
    import java.util.Scanner;
    //Java 键盘输入数字(空格隔开) 将数字存入数组。
    public class demo2 {
    //核心是切割字符串,将字符串里面的数字转换,存进数组。
    	public static void main(String[] args) {
    		System.out.println("从键盘上输入数字并用空格隔开");
    		 Scanner sc = new Scanner(System.in);
             String inputString = sc.nextLine();
             String stringArray[] = inputString.split(" ");
             int num[] = new int[stringArray.length];
             for (int i = 0; i < stringArray.length; i++) {
                   num[i] = Integer.parseInt(stringArray[i]);
                   System.out.println(stringArray[i]);
             }
    	}
    }
    
    更多相关内容
  • 主要有3种方式从控制台输入字符。 一、System.in 这是一个标准输入流,并且可以通过它来提供输入数据。 System.in.read():返回键盘输入的字节流。 键盘输入的信息是用UTF-8编码的,也就是说假如输入是ASCII中的...

    先总结一下用法,后面是详细介绍:

    • System.in 读取单个byte,可以读取ASCII码中的字符
    • InputStreamReader 读取单个\一串字符,这个字符可以是任意编码(并且可以指定编码方式)
    • BufferedReader 读取一行字符。
    • Scanner :最强最通用的方法,可以读取指定类型的字符。

    一、System.in

    这是一个标准输入流,并且可以通过它从键盘中获取字节流

    官方描述:
    The "standard" input stream. This stream is already open and ready to supply input data. Typically this stream corresponds to keyboard input or another input source specified by the host environment or user.

    System.in.read():返回从键盘输入的字节流。

    键盘输入的信息是用UTF-8编码的,而read()每次返回一个字节。也就是说假如输入是ASCII中的编码,刚好可以返回一个完整字符。

    可以将read()的返回值强制转换为char。
    (注: char类型实际是utf16存储的,但是对于ASCII码,utf-8和utf-16对应的数字都是一样的)

            while(true){
                char c = (char)System.in.read();
                System.out.println(c);
            }
    

    运行效果:(绿字为输入,白字为输出)
    在这里插入图片描述

    但是假如输入的是汉字,就比较麻烦了。汉字的UTF-8是3字节。也就是说会返回3个byte

            while(true){
                System.out.println(System.in.read());
            }
    
    

    在这里插入图片描述
    230 177 137刚好是"汉"的utf-8编码

    总结:System.in.read()是按字节读取,可以用来读取ASCII码中的字符,不适合读取UTF-8中占多位的字符。

    二、使用InputStreamReader将字节流转换为字符流读取

            InputStreamReader ir = new InputStreamReader(System.in);
            while(true){
                char c = (char)ir.read();
                System.out.println(c);
            }
    

    以上代码的效果是: 每次读取一个字符(而不是字节),也就是说,现在可以直接读取汉字了。

    什么是InputStreamReader? 他是一个将字节流转换为字符流的“桥”。默认情况下,它可以将字节按UTF-8解码,并编码成char类型(即utf16),以在java中显示。
    在这里插入图片描述

    源码中的解释如下:

    
    //An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into //characters using a specified charset. 
        /**
         * Creates an InputStreamReader that uses the default charset.
         *
         * @param  in   An InputStream
         */
        public InputStreamReader(InputStream in) {
            super(in);
            sd = StreamDecoder.forInputStreamReader(in, this,
                    Charset.defaultCharset()); // ## check lock object
        }
    

    InputStreamReader还可以选定解码方式。比如:

    InputStreamReader ir = new InputStreamReader(System.in,"UTF-16");
    

    不过这样解析出来是乱码。因为键盘输入是UTF-8编码。

    三、使用BufferedReader,利用缓存实现整行读取

    如何读取一串字符呢?首先想到可以把字符全缓存到一个char[] 数组中
    实际上,InputStreamReader的read方法就能实现这样的效果。

            InputStreamReader ir = new InputStreamReader(System.in);
            char[] buffer = new char[10];
            while(true){
                ir.read(buffer);
                System.out.println(buffer);
            }
    

    在这里插入图片描述

    buffer存储的内容是:
    在这里插入图片描述

    假如我们想仅读取一行数据怎么办?可以遍历查找到’\n’,再用’\n’前面的字符中构造字符串。方法这里就不写了。

    这样,我们通过自定义一个缓存区,实现了一串字符的读取。
    java中提供了BufferedReader类,该类内置了缓存区,我们就可以实现整行读取,不需要自己再设置缓存区。

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            while(true){
                String str = br.readLine();
                System.out.println(str);
            }
    

    在这里插入图片描述

    四、Scanner:格式化读取

    这应该是最常用的读取方式
    首先可以做到前面的读取一行字符的功能:

            Scanner in = new Scanner(System.in);
            while(true){
                if(in.hasNextLine())
                System.out.println(in.nextLine());
            }
    

    效果:
    在这里插入图片描述

    Scanner可以说集成了前面的各种输入方法。

    1、字符串解码:Scanner构造时的参数是字节流,肯定需要解码才能转为字符,默认使用UTF-8解码,但是也可以指定其他解码方式

    Scanner in = new Scanner(inputStream,"UTF-16");
    

    2、缓存输入字符。使用的是一个CharBuffer类作字符缓存,其内部是char[]存储的
    3、将字符解析为基本类型。类似ParseInt等函数的作用。

    nextInt()读取数字

            Scanner in = new Scanner(System.in);
            while(true){
                if(in.hasNextLine())
                System.out.println(in.nextInt()*10);
            }
    

    在这里插入图片描述
    还可以指定进制:这里以20进制为例

            Scanner in = new Scanner(System.in);
            while(true){
                if(in.hasNextLine())
                System.out.println(in.nextInt(20));
            }
    

    在这里插入图片描述
    (20进制中的j相当于10进制中的19)

    另外还有其他的很多方法,不一一列举了,比较简单。

    展开全文
  • Java怎么从控制台输入

    2022-06-21 18:24:31
    Java 中,有四种不同的方式可以在命令行环境(控制台)中读取用户的输入

            在 Java 中,有四种不同的方式可以在命令行环境(控制台)中读取用户的输入。

    1.使用缓冲阅读器类

            这是Java经典的取输入方式,在JDK1.0中引入。此方法通过将 System.in(标准输入流)包装在 InputStreamReader 中来使用,InputStreamReader 包装在 BufferedReader 中,我们可以在命令行中读取用户的输入。

            输入被缓冲以实现高效读取。

            包装代码很难记住。

    执行:

    // Java program to demonstrate BufferedReader
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    public class Test {
    	public static void main(String[] args)
    		throws IOException
    	{
    		// Enter data using BufferReader
    		BufferedReader reader = new BufferedReader(
    			new InputStreamReader(System.in));
    		// Reading data using readLine
    		String name = reader.readLine();
    		// Printing the read line
    		System.out.println(name);
    	}
    }

    输入:

    尚学堂

    输出:

    辅助空间:O(1)

    尚学堂

    2.使用 Scanner 类

            这可能是接受输入的最首选方法。Scanner 类的主要目的是使用正则表达式解析原始类型和字符串,但是,它也可用于在命令行中读取用户的输入。

            从标记化输入中解析基元(nextInt()、nextFloat()、...)的便捷方法。

            正则表达式可用于查找标记。

    阅读方式不同步

    // Java program to demonstrate working of Scanner in Java
    import java.util.Scanner;
    class GetInputFromUser {
    	public static void main(String args[])
    	{
    		// Using Scanner for Getting Input from User
    		Scanner in = new Scanner(System.in);
    		String s = in.nextLine();
    		System.out.println("You entered string " + s);
    		int a = in.nextInt();
    		System.out.println("You entered integer " + a);
    		float b = in.nextFloat();
    		System.out.println("You entered float " + b);
    	}
    }

    输入:

    hello
    12
    3.4

    输出:

    您输入了字符串 hello
    您输入了整数 12
    你输入了 float 3.4

    3.使用控制台类

            它已成为从命令行读取用户输入的首选方式。此外,它可以用于读取类似密码的输入,而不用回显用户输入的字符;也可以使用格式字符串语法(如 System.out.printf())。

    优点:

    • 读取密码而不回显输入的字符。
    • 读取方法是同步的。
    • 可以使用格式字符串语法。
    • 不适用于非交互环境(例如 IDE)。
    // Java program to demonstrate working of System.console()
    // Note that this program does not work on IDEs as
    // System.console() may require console
    public class Sample {
    	public static void main(String[] args)
    	{
    		// Using Console to input data from user
    		String name = System.console().readLine();
    		System.out.println("You entered string " + name);
    	}
    }

    输入:

    hello

    输出:

    您输入了字符串 hello

    4.使用命令行参数

            最常用于竞争性编码的用户输入。命令行参数以字符串格式存储。Integer 类的 parseInt 方法将字符串参数转换为 Integer。同样,对于执行期间的浮动和其他。args[] 的用法出现在这种输入形式中。信息的传递发生在程序运行期间。命令行提供给 args[]。这些程序必须在 cmd 上运行。

    代码:

    // Program to check for command line arguments
    class Hello {
    	public static void main(String[] args)
    	{
    		// check if length of args array is
    		// greater than 0
    		if (args.length > 0) {
    			System.out.println(
    				"The command line arguments are:");
    			// iterating the args array and printing
    			// the command line arguments
    			for (String val : args)
    				System.out.println(val);
    		}
    		else
    			System.out.println("No command line "
    							+ "arguments found.");
    	}
    }

    命令行参数:

    javac GFG1.java
    java Main Hello World

    输出:

    命令行参数是:
    你好
    世界

    Java学习视频

    Java基础:

    Java300集,Java必备优质视频_手把手图解学习Java,让学习成为一种享受

    Java项目:

    【Java游戏项目】1小时教你用Java语言做经典扫雷游戏_手把手教你开发游戏

    【Java毕业设计】OA办公系统项目实战_OA员工管理系统项目_java开发

    展开全文
  • 一、使用标准输入串System.in//System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字//System.in.read()返回一个整数//必须初始化//int read = 0;char read = '0';System.out.println(...

    一、使用标准输入串System.in

    //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字

    //System.in.read()返回一个整数

    //必须初始化

    //int read = 0;

    char read = '0';

    System.out.println("输入数据:");

    try {

    //read = System.in.read();

    read = (char) System.in.read();

    }catch(Exception e){

    e.printStackTrace();

    }

    System.out.println("输入数据:"+read);

    二、使用Scanner取得一个字符串或一组数字

    System.out.print("输入");

    Scanner scan = new Scanner(System.in);

    String read = scan.nextLine();

    System.out.println("输入数据:"+read);

    /*在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。*/

    三、使用BufferedReader取得含空格的输入

    //Scanner取得的输入以space, tab, enter 键为结束符,

    //要想取得包含space在内的输入,可以用java.io.BufferedReader类来实现

    //使用BufferedReader的readLine( )方法

    //必须要处理java.io.IOException异常

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));

    //java.io.InputStreamReader继承了Reader类

    String read = null;

    System.out.print("输入数据:");

    try {

    read = br.readLine();

    } catch (IOException e) {

    e.printStackTrace();

    }

    System.out.println("输入数据:"+read);

    展开全文
  • Java从控制台输入

    千次阅读 2019-01-04 11:10:35
    使用标准输入串System.in.read()来读取从控制台输入的数据首先,使用标准输入串System.in.read()时需要添加异常处理IOExecption。并在开头导入异常处理类(import java.io.IOException;)。注意使用...
  • Java获取控制台输入的两种方法

    千次阅读 2021-11-17 16:55:11
    在学习网络编程中,有需要从控制台输入数据,进行两个线程之间的通信,其中,涉及到了读取控制台输入的两种不同的操作,笔者在这里进行记录,以供大家分享。 方法一、InputStreamReader 本身只能单个字符地读取...
  • 主要介绍了Java从控制台接受输入字符的简单方法,需要的朋友可以参考下
  • Java从控制台输入的几种方法

    千次阅读 2021-03-04 07:51:40
    1.使用Scanner类步骤1.1导入java.util包1.2构造Scanner类的对象,附属于标准输入流System.in,之后通过其中的方法获得输入。1.3使用close();方法关闭对象。常用的方法:nextLine();(字符串),nextInt();(整型数),...
  • java控制台输入

    2021-03-05 19:29:58
    一、java控制台输入java控制台输入有如下几个方法1、JDK 1.4 及以下版本读取的方法JDK 1.4 及以下的版本中要想控制台中输入数据只有一种办法,即使用System.in获得系统的输入流,再桥接至字符流字符流中读入数据...
  • 介绍了Java命令控制台输入数据的几种常用方法
  • java从控制台输入整形数据方式 主要使用的是 java.util.Scanner 类 输入多个数值时,按空格在输入下一个数字,按回车键结束 Scanner sc = new Scanner(System.in); System.out.println("请输入一个正整数:"); ...
  • Java从控制台输入数据

    千次阅读 2017-08-13 13:19:23
    Java控制台输入数据主要使用java.util.Scanner类 Scanner介绍:1)JDK5.0开始,java.util包中增加了Scanner类, 它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。 把所输入的内容传给...
  • Java从控制台(如:键盘)获取输入值的3种方法 import java.util.Scanner; // 方法1 需要引入 import java.io.*; //方法2和方法3 需要引入 public class main{ public static void main(String [] args) throws ...
  • Java从控制台读取输入

    2019-09-16 10:15:45
    Java中system.out表示标准输出设备,用System.in表示标准输入设备。默认情况下,输出设备是显示器,输入设备是键盘。...//读取控制台输入 Scanner input = new Scanner(System.in); 语法new Scanner(System.in...
  • 原文博客地址:https://www.cnblogs.com/SzBlog/p/5404246.html一、使用标准输入串System.in//System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字//System.in.read()返回一个整数//必须...
  • 以下为代码:publicstaticvoidmain(String[]args){Scannerscan=newScanner...System.out.println("请输入两个整数:a,b");inta=scan.nextInt();intb=scan.nextInt();if(a>b){System.out.println("最大值为:...
  • 主要介绍了java 使用Scanner类接收从控制台输入的数据方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • java接收控制台输入

    2021-10-24 10:14:08
    1.接收整数类型输入 public static void main(String[] args) { java.util.Scanner sc=new Scanner(System.in); System.out.println("请输入将要计算阶乘的整数n:"); int n=sc.nextInt(); //接收整数类型输入 ...
  • 首先判断输入的字符串是不是空,为空的话,则不作任何操做。其次,将字符串按照指定方式切分为字符串数组,此处是按照空格切分,由于输入是按空格区分的。最后,尝试将字符串数组中的每一个字符串利用Integer....
  • JAVA基础——控制台输入(Scanner)

    千次阅读 2022-01-10 11:13:18
    本节学习目录前言一、Scanner是什么?...Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。 二、使用步骤 1.导包 import java.util.Scanner; 2.实例化一个Scanner对象 代码如下: //这里的
  • 问题如下:想要在控制台输入中文,然后代码的作用就是复述一边。然后出现问题了。英...一个很简单的很短的代码,让我很困惑,感觉应该是输入法的问题,不过不知道怎么解决。求高手赐教。问题如下:想要在控制台输入...
  • java接收控制台输入的三种方法

    万次阅读 多人点赞 2018-09-17 19:59:12
    第一种 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; ...import java.util.... //缺点一: 该方法能获取键盘输入的字符,但只能针对一个字符的获取 ...
  • java 从控制台输入密码

    千次阅读 2015-08-20 16:48:57
    如果想从控制台读取用户输入,我们一般用Scanner 类留可以了,但是其输入是可见的,所以Scanner类不适用于从控制台读取密码。Java SE 6 引入了Console类实现这个目的。Java.lang.System类提供静态方法console()获取...
  • 输入一个数组,然后颠倒次序进行输出,这种算法在程序开发中经常用到,下面我们通过一个小实例来看看怎么实现在控制台输入一个数组,并让其逆序输出的。源码:import java.util.Scanner;public class Test01 {public...
  • 双色球java控制台程序,亲测可以直接运行。
  • 主要介绍了java从控制台接收一个数字的实例详解的相关资料,这里提供实例代码,注释说明清晰,需要的朋友可以参考下
  • 给我一个JAVA控制台输入中文的实例关注:205答案:3mip版解决时间 2021-01-27 14:43提问者葃日懙妳2021-01-26 20:40越简单越好,就是运行之后出了控制台,输入一句话或者一个字,再打印出来一遍.忘了控制台的输入流怎么...
  • 控制台输入java中有一个System.in.read(),但是跟c#中的Console.ReadLine()不同,不知道为何,我即使象在C#中使用强制类型转换也不可以得到输入的数字.这是因为,Java将Enter的键也输入进去了.但是解决的方法还是有的,...
  • Java中Scanner类可以帮助我们获取用户在控制台输入的数据。 一、控制台的输入 实现步骤: 导入Scanner对象 import java.util.Scanner; 或 import java.util.*; 接收用户输入的值 Scanner input=new...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 217,441
精华内容 86,976
关键字:

java从控制台输入