精华内容
下载资源
问答
  • Java中的常见输入形式

    2020-08-30 10:55:55
    Java中的常见输入形式 第一种:System.in.read() 只能获取单个字符 char i = (char)System.in.read(); 第二种:利用Scanner类 可以输入三种类型 ,用途广泛 Scanner s = new Scanner(System.in); Int int = s....

    Java中的常见输入形式

    第一种:System.in.read()
    只能获取单个字符

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

    第二种:利用Scanner类
    可以输入三种类型 ,用途广泛

    Scanner s = new Scanner(System.in);
    Int int = s.nextInt();
    String str = s.nextLine();
    Float flo = s.nextFloat();

    第三种:InputStreamReader和BufferedReader方法
    只可以获取键盘输入的字符串

    InputStreamReader input = new InputStreamReader(System.in);
    BufferedReader bf = new BufferedReader(input);
    //等同于
    //BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    String s = bf.readLine();
    展开全文
  • (1)读取控制台输入 java的控制台输入由System.in完成。 为了获得一个绑定到控制台的字符流,你可以把System.in包装在一个BufferedReader对象中创建一个字符流。 BufferedReader br = new BufferedReader(new ...

    (1)读取控制台输入

    java的控制台输入由System.in完成。
    为了获得一个绑定到控制台的字符流,你可以把System.in包装在一个BufferedReader对象中创建一个字符流。

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

    实例化BufferedReader类时需要传入一个IO对象。

    BufferedReader对象创建后,我们便可以使用如下方法:

    • read()方法从控制台读取一个字符
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int charASCII = br.read();//这里读取的是输入的字符的ASCII码值
    char inputChar = (char) charASCII; //强制类型转换为字符类型
    System.out.println(inputChar+":"+charASCII);//打印出输入的字符和其ASCII码值
    

    因为调用了read()方法,所以要抛出IOException,即在包含上述代码的方法外部要throws IOException,即声明IO异常;

    • readLine()方法读取一个字符串
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String inputString = br.readLine(); //读取一个从控制台输入的字符串
    System.out.println(inputString);
    

    这里也是如此,方法外部也需要声明IO异常(throws IOException);

    (2)从控制台读取多字符输入

    public static void IOTest() throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int ascii;
            char c;
            // 定义一个StringBuilder对象用来动态存储输入的字符
            StringBuilder str = new StringBuilder();
            System.out.println("输入字符,直到按下空格结束:");
            while (true){
                ascii = br.read(); //这里读取的是输入的字符的ASCII码值,即int类型的值
                // 当读取到输入的字符为换行符的时候跳出循环
                if (ascii == 10) //换行符的ASCII码值为10
                    break;
                c = (char)ascii;
                str.append(c);
            }
            System.out.println(str);
    }
    

    运行结果如下:

    输入字符,直到按下空格结束:
    Believe yourself!
    Believe yourself!
    

    (3)从控制台读取多字符串

    public static void IOTest() throws IOException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
           
            StringBuilder res = new StringBuilder();//用来存储输入的字符行
    
            System.out.println("请输入字符行,直到输入‘end’结束输入:");
            String str;
            while (true){
                str = br.readLine();
                if (str.equals("end")) //当输入end的时候,跳出循环
                    break;
                res.append(str);
            }
            System.out.println(res.toString());
    }
    

    运行结果如下:

    请输入字符行,直到输入‘end’结束输入:
    You can fail,
    but you can't lose your confidence!
    end
    You can fail,but you can't lose your confidence!
    

    (4)通过Scanner读取控制台输入

    我们可以通过Scanner类获取用户的输入

    Scanner scanner = new Scanner(System.in);
    

    通过Scanner类的next()nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()hasNextLine()判断是否还有输入的数据

    next()

    读取键盘输入的字符串并打印,直到用户输入字符串“end”为止。

    public static void scannerTest(){
            Scanner scanner = new Scanner(System.in);//接收键盘上输入的数据
            System.out.println("next方式读取数据:");
            while (scanner.hasNext()){
                //当读取到输入的字符串是“end”,表示输入结束。
                String str = scanner.next();
                if (str.equals("end"))
                    break;
                System.out.println("输入的数据为:"+str); // (1)
            }
            scanner.close();//关闭scanner对象
    }
    

    运行结果为:
    (1)

    next方式读取数据:
    Hello, how are you ! end
    输入的数据为:Hello,
    输入的数据为:how
    输入的数据为:are
    输入的数据为:you
    输入的数据为:!
    
    Process finished with exit code 0
    

    (2)

    next方式读取数据:
    Hello, How are you !
    输入的数据为:Hello,
    输入的数据为:How
    输入的数据为:are
    输入的数据为:you
    输入的数据为:!
    end
    
    Process finished with exit code 0
    

    将(1)处的输出语句改为如下形式,则:

    System.out.print(str+" ");
    

    其运行结果如下:

    next方式读取数据:
    Hello, how are you ! end
    Hello, how are you! 
    
    Process finished with exit code 0
    
    • (1)next()方法默认将空格作为字符串的分隔符,所以不能读取带有空格的字符串。

    例如:h ello,这里是分为两个字符串,所以是读取两次,h 一次,ello 一次;

    • (2)next()方法可以修改默认的字符串分隔符;
    // 上面对应的代码改成如下所示
    Scanner scanner = new Scanner(System.in);
    // 使用userDelimiter("_")将默认的字符串分隔符改为“_”(下划线)
    String str = scanner.useDelimiter("_").next();
    

    则运行结果为:

    next方式读取数据:
    Hello_How_are_you_!_end
    Hello How are you ! 
    
    • (3)对输入有效字符之前的空白,next()方法会自动将其去掉;

    nextLine()

    nextLine(): reads input including space between the words (that is, it reads till the end of line \n). Once the input is read, nextLine() positions thecursor in the next line.

    读取整行的数据包括单词间的空格,到回车结束(也就是从开始读一整行包括回车),读取结束后,光标放在下一行开头。

    public static void scannerTest1(){
            Scanner scanner = new Scanner(System.in);
            System.out.println("nextLine方式读取数据:");
            while (scanner.hasNextLine()){
                String str = scanner.nextLine();
                if (str.equals("end"))
                    break;
                System.out.println("输出的数据为: "+str);
            }
            scanner.close();
    }
    

    运行结果:

    nextLine方式读取数据:
    Hello, How are you ! end
    输出的数据为: Hello, How are you ! end    
    Nice to meet you! end
    输出的数据为: Nice to meet you! end
    end
    

    注意: 我们在输入“Hello,How are you ! end”后并没有结束输入,因为nextLine()读取的是输入回车键之前的所有字符,所以这里String str = scanner.nextLine()读取的是“Hello,How are you ! end”,即str = "Hello,How are you ! end",而不是str = "end",所以这里不会终此输入。
    而下面的单独一行输入“end”之后, 才结束输入。

    • (1)以Enter(回车键)为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符;
    • (2)可以获取空白(读取空白);

    nextInt()

    nextInt(): it only reads the int value, nextInt() places the cursor in the same line after reading the input.
    只读取整数型数据, nextInt()在读取完输入后把光标放在读取数据的同一行,该数据的后面。

    public static void scannerTest2(){
            Scanner scanner = new Scanner(System.in);
            System.out.println("nextInt方式读取数据:");
            while (scanner.hasNextInt()){ //只要输入的数据不是整型数据,立马结束输入的读取
                int data = scanner.nextInt();
                System.out.println("输出的数据为: "+data);
            }
            scanner.close();
    }
    
    nextInt方式读取数据:
    23 89 299 09 78 jksdf
    输出的数据为: 23
    输出的数据为: 89
    输出的数据为: 299
    输出的数据为: 9
    输出的数据为: 78
    
    Process finished with exit code 0
    

    只要输入的不是整型数据(除分隔符以外),则结束输入。

    nextDouble()

    与nextInt()方法类似,不同的是只读取小数(double)类型的数据。

    参考:

    1. Java 流(Stream)、文件(File)和IO
    2. java中的IO整理 – 整理得很详细(可以多读读)
    3. Java Scanner 类
    4. 小心:Scanner中关于next()、nextInt()和nextLine()的问题
    展开全文
  • 返回的是string类型数据,因此键盘输入的数据被默认为字符/串形式 输入:字符间存在空格或tab,回车结束键盘录入 输出:只截取第一个空格前的字符 举例:输入为1 2 s;输出则为1 nextInt() 输入:只允许输入整数...

    Java键盘键入时中next() 、nextInt()、nextLine()三者使用区别有时容易混淆,为此进行一个小总结。

    • next()

    返回的是string类型数据,因此键盘输入的数据被默认为字符/串形式

    输入:字符间存在空格或tab,回车结束键盘录入

    输出:只截取第一个空格前的字符

    举例:输入为1 2 s;输出则为1

    • nextInt()

    输入:只允许输入整数型数据,否则报错;数据间允许存在空格或tab;回车结束键盘录入

    输出:只截取第一个空格前的数值

    举例:输入为1 2 22;输出则为1

    • nextLine()

    输入:允许输入数据间有各种符号;回车结束键盘录入

    输出:获取回车前所有字符,包括空格和tab等

    举例:输入为1 2   22 fx;输出则为1 2   22 fx

    展开全文
  • Scanner对象的nextInt()方法的注意点

    万次阅读 2014-01-09 11:39:03
    在写一个程序的时候,我的本意是读取一个整数之后,再读取其后的一整行,在整数之后,会有换行输入,其输入形式如下: 4 + 1 2 - 1 2 * 1 2 / 1 2 但是在写了一个测试程序之后发现了一个问题,程序如下: ...
    在写一个程序的时候,我的本意是读取一个整数之后,再读取其后的一整行,在整数之后,会有换行输入,其输入形式如下:
    4
    + 1 2
    - 1 2
    * 1 2
    / 1 2
    但是在写了一个测试程序之后发现了一个问题,程序如下:
    package cn.edu.shu.test;
    
    import java.util.Scanner;
    
    public class Test {
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		int numOfInt = in.nextInt();// 读取一个整数
    		System.out.println("numOfInt->" + numOfInt);
    		while (in.hasNext()) {
    			String str = in.nextLine();
    			String strs[] = str.split(" ");
    			System.out.println("strs.length=" + strs.length);
    			System.out.println("str=" + str);
    			for (String string : strs) {
    				if ("".equals(string)) {
    					System.out.println("string是\"\"");
    				}
    				if (" ".equals(string)) {
    					System.out.println("string是\" \"");
    				}
    				if ("  ".equals(string)) {
    					System.out.println("string是\"  \"");
    				}
    			}
    		}
    	}
    }
    当我输入测试数据之后,运行结果如下:
    4
    numOfInt->4
    +12
    strs.length=1
    str=
    string是""
    strs.length=1
    str=+12
    -12
    strs.length=1
    str=-12
    *12
    strs.length=1
    str=*12
    /12
    strs.length=1
    str=/12
    其中红色数据是输入数据,黑色数据是输出数据,乍一看很奇怪的输出,仔细想想之后,是因为nextInt()读取完了之后,并没有换行操作,紧接着调用nextLine()方法读到的数据是“4”之后的空格,并且当你用一个空格去匹配读取的内容的时候,返回true,比如我用"".equals(string)返回true,我用“一个空格”.equals(string)返回false,我用“两个空格”.equals(string)还是返回false,所以说,用nextLine()读取的数据只要是空格,其对数量并不做比较,就认为是一个空串,所以第一次nextLine()读取的是空串,其输出的length是1 ,第二次,才读取到换行符之后的我的输入数据,并且正确输出了。
    展开全文
  • 1. 是说这段程序的输入是 cin>>形式的、输出是cout形式的键盘terminal读写吗? 2. 还是说输入是ifstream in()形式的、输入是ofstream out()形式的文件呢? 3. 还是说应该是stringstream这种东西呢? ……再多问一句...
  • 输入的数组以矩阵形式输出

    千次阅读 2017-06-20 15:41:45
    import java.util.Scanner;...//Scanner主要功能是简化文本扫描,当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束, //把所输入的内容传给Scanner,作为扫描对象。
  • 版权声明 ... 题目描述 描述: ...输入一个整数,将这个整数以字符串的形式逆序输出 ...程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为0...
  • 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 输入描述: 输入一个int整数 输出描述: 将这个整数以字符串的形式逆序输出 输入例子: 1516000 输出例子: ...
  • 今天发现一直用的Scanner中的定义一种数值类型时利用 对象.nextInt() 方法时会有一个问题,首先以下是基本的几步 (1)导包,在前面写上import java.util.Scanner; (2)输入Scanner sc=new Scanner(System.in); 新建...
  • 从键盘输入一个正整数n,请按照以下五行杨辉三角形式显示  package arraytest; import java.util.Scanner; public class YangHuiSanJiao { public static void main(String args[]) { System.out....
  • 其实无论你键盘中输入什么它最终全都是以字符串的形式呈现,next()就是将字符串原封不动地拿过来,nextInt()就是将拿过来的字符串转换成int类型的数据,同理nextFloat()就是将拿过来的字符串抓换成float类型的数据…...
  • 使用Java写一个程序:输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
  • import java.util.*; public class Main{ public static void main(String[] args){ ... int a=in.nextInt(); System.out.println(getString3(a));// //getString1(a); } public static String.
  • import java.util.Scanner; public class Sort { public static void main(String[] args){ int a,b,c; Scanner input=new Scanner(System.in); System.out.print(... a = input.nextInt(); System.out.print
  • Java之输入

    2016-03-31 23:55:54
    其标准形式为 Scanner.in = new Scanner(System.in); 然后就可以通过Scanner类的各种方法实现输入操作,下面进行举例。 nextLine方法可以输入一行,但可能包含空格。 next可以读取字符串中的一个单词。 nextInt可以...
  • 参加笔试的一道题 import java.util.Scanner; public class Solution { ..."请输入要转换的数字:" ); int num = sc.nextInt(); if (num == - 1 ) return ; convert(num); } } }
  • 任何有理数都可以表示为无限循环小数的形式。 本题目要求即是:给出一个数字的循环小数表示法。 例如: 输入: 1,5 则输出: 0.2 输入: 1,7 则输出: 0.[142857] 输入: 7,6 则输出: 1.1[6] ...
  • 题目:求一个3*3矩阵对角线元素之和,矩阵的数据用行的形式输入到计算机中 程序分析:利用双重for循环控制输入二维数组,再将 a[i][i] 累加后输出。 实现思路: 【二维数组】相关知识: 定义格式 * a 第一种...
  • Eclipse输入输出使用(java.io数据流)

    千次阅读 2019-02-18 19:20:26
    一、输入输出控制台 输入: 1. 使用Scanner类输入 需要添加import java.util.*; Scanner in=new Scanner(System.in); String s=in.next(); //输入字符串 String l=in.nextLine();... int i=in.nextInt(); ...
  • int number = in.nextInt(); StringBuffer Sb = new StringBuffer(""); Sb = Sb.append("1x"); for(int i = 2;i <number; i ++){ while(number % i == 0){ Sb = Sb.append(i + "x"); ...
  • public class Test6 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); for(int j=0;j&...请输入1-7的数字,系统判断...
  • *3.8(对三个整数排序)编写程序,提示用户输入三个整数,以非降序的形式显示这三个整数题目题目概述破题代码 题目 题目概述 *3.8(对三个整数排序)编写程序,提示用户输入三个整数,以非降序的形式显示这三个整数 ...
  • java 输入的几种方式

    千次阅读 2015-05-19 23:33:39
    以下两种方法是我们在java输入中较为常用的方法 第一种:scanner类(较为简单) Scanner sc= new Scanner(System.in); while (sc.hasNextInt()) { int a=sc.nextInt(); int b=sc.nextInt(); System.o
  • import java.util.ArrayList; import java.util.List;... * java编程 输入任意的数(不超过1000000) * 将其分解成两个质数相加的形式, * 输出总共有多少总分解方式,分解因子不区分排序 * example * inp...
  • 代码: 1 import java.util.*; 2 public class Main { 3 public static void main (String [] args) { 4 Scanner scan=new Scanner(System.in); 5 int n=scan.nextInt(); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,985
精华内容 7,994
关键字:

nextint输入形式