java控制台输入

做了实习的第一个笔试,方法都写的好好的,自己idea上也ok,到了牛客网上就数组越界,心塞的不行。查了一下都讲是输入输出的问题。一方面觉得笔试这样设置非常不合理,另一方面也明白是自己输入输出着实没学到位,因此没有这方面应急能力。所以总结一下输入输出。

步骤:

(1)创建Scanner对象,接受从控制台输入

Scanner input=new Scanner(System.in);

(2)接受String类型或int类型

String str=input.next();
int n=input.nextInt();

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

/*

其实next()与nextLine()区别很明确:

next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。

使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。

*/

例:

(1)输入一个字符串或数

import java.util.Scanner;
 
public class Demo59 {
	public static void main(String[] args) {
		//创建Scanner对象,接受从控制台输入
		Scanner input=new Scanner(System.in);
		//接受String类型
		String str=input.next();
		//输出结果
		System.out.println(str);
	}
 
}

 

(2)连续输入多行数,以空行结束

 public static void inputInteger() {
        Scanner scanner = new Scanner(System.in);
        String nextLine = scanner.nextLine();
        int sum = 0;

        while (nextLine != null && !nextLine.equals("")) {
            sum += Integer.parseInt(nextLine);
            System.out.println(sum);
            nextLine = scanner.nextLine();
        }

        System.out.println("end of input integer");
    }

(3)连续输入多行字符串,以空行结束

    public static void main(String[] args)
    {
        StringBuilder stringbuilder = new StringBuilder();
        Scanner scanner = new Scanner(System.in);
        while(true)
        {
            String text = scanner.nextLine().trim();
            if ("".equals(text))
            {
                break;
            }
            stringbuilder.append(text);
        }

        System.out.println(stringbuilder.toString());
    }

注:trim用于去除字符串两端Unicode编码小于等于32(\u0020)的所有字符;还可使用trim()的重载方法String.Trim(Char[])自定义需去除的符号。

(4)输入多个数值,以空格分开

  public static void inputIntInLine() {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        String[] numstr = str.split(" ");
        int[] nums = new int[numstr.length];
        for(int i = 0; i < numstr.length; i ++) {
            nums[i] = Integer.parseInt(numstr[i]);
        }
        for(int n: nums) {
            System.out.println(n);
        }
        System.out.println("end of input int in a line");

    }

(5)做题时可以正确的输入

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner in =  new Scanner(System.in);   
        while(in.hasNext()){
            String str = in.nextLine();
            System.out.println(str);
        }
    }
}

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页